{"version":3,"file":"pwc-458.bd8f29a1.chunk.js","mappings":"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","sources":["../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/autosize/dist/autosize.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/computed-style/dist/computedStyle.commonjs.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/relativeTime.js","../node_modules/dayjs/plugin/utc.js","../node_modules/deep-equal/index.js","../node_modules/deep-equal/node_modules/isarray/index.js","../node_modules/define-properties/index.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/emoji-mart/dist-es/utils/data.js","../node_modules/emoji-mart/dist-es/polyfills/stringFromCodePoint.js","../node_modules/emoji-mart/dist-es/utils/index.js","../node_modules/emoji-mart/dist-es/utils/store.js","../node_modules/emoji-mart/dist-es/utils/emoji-index/nimble-emoji-index.js","../node_modules/emoji-mart/dist-es/utils/emoji-index/emoji-index.js","../node_modules/emoji-mart/dist-es/utils/frequently.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/emoji-mart/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/emoji-mart/dist-es/svgs/index.js","../node_modules/emoji-mart/dist-es/utils/shared-props.js","../node_modules/emoji-mart/dist-es/components/anchors.js","../node_modules/emoji-mart/dist-es/utils/shared-default-props.js","../node_modules/emoji-mart/dist-es/components/emoji/nimble-emoji.js","../node_modules/emoji-mart/dist-es/components/not-found.js","../node_modules/emoji-mart/dist-es/components/category.js","../node_modules/emoji-mart/dist-es/components/skins.js","../node_modules/emoji-mart/dist-es/components/skins-emoji.js","../node_modules/emoji-mart/dist-es/components/skins-dot.js","../node_modules/emoji-mart/dist-es/components/preview.js","../node_modules/emoji-mart/dist-es/components/search.js","../node_modules/emoji-mart/dist-es/components/picker/nimble-picker.js","../node_modules/emoji-mart/dist-es/components/picker/picker.js","../node_modules/emoji-mart/dist-es/components/emoji/emoji.js","../node_modules/emoji-mart/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/emoji-mart/node_modules/prop-types/index.js","../node_modules/emoji-mart/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/es-get-iterator/node_modules/isarray/index.js","../node_modules/foreach/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/has-bigints/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/has/src/index.js","../node_modules/is-arguments/index.js","../node_modules/is-bigint/index.js","../node_modules/is-boolean-object/index.js","../node_modules/is-date-object/index.js","../node_modules/is-map/index.js","../node_modules/is-number-object/index.js","../node_modules/is-regex/index.js","../node_modules/is-set/index.js","../node_modules/is-string/index.js","../node_modules/is-symbol/index.js","../node_modules/is-weakmap/index.js","../node_modules/is-weakset/index.js","../node_modules/line-height/lib/line-height.js","../node_modules/linkify-it/index.js","../node_modules/linkify-it/lib/re.js","../node_modules/object-inspect/index.js","../node_modules/object-is/implementation.js","../node_modules/object-is/index.js","../node_modules/object-is/polyfill.js","../node_modules/object-is/shim.js","../node_modules/object-keys/implementation.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/object.assign/implementation.js","../node_modules/object.assign/index.js","../node_modules/object.assign/polyfill.js","../node_modules/object.assign/shim.js","../node_modules/react-autosize-textarea/lib/TextareaAutosize.js","../node_modules/react-autosize-textarea/lib/index.js","../node_modules/react-linkify/dist/components/Linkify.js","../node_modules/react-linkify/dist/decorators/defaultComponentDecorator.js","../node_modules/react-linkify/dist/decorators/defaultHrefDecorator.js","../node_modules/react-linkify/dist/decorators/defaultMatchDecorator.js","../node_modules/react-linkify/dist/decorators/defaultTextDecorator.js","../node_modules/react-linkify/dist/index.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/remark-code-blocks/index.js","../node_modules/side-channel/index.js","../node_modules/compute-scroll-into-view/dist/index.module.js","../node_modules/scroll-into-view-if-needed/es/index.js","../node_modules/smooth-scroll-into-view-if-needed/es/index.js","../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/uc.micro/properties/Any/regex.js","../node_modules/which-boxed-primitive/index.js","../node_modules/which-typed-array/index.js","../node_modules/which-typed-array/node_modules/is-typed-array/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/es-get-iterator/index.js","../node_modules/which-collection/index.js","../node_modules/which-typed-array/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","../node_modules/is-absolute-url/index.js","../node_modules/rehype-external-links/index.js","../node_modules/remark-breaks/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-util-encode/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/html.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/html.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/html.js","../node_modules/micromark-extension-gfm-tagfilter/index.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/html.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/index.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/index.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-gfm-task-list-item/index.js","../node_modules/mdast-util-gfm/index.js","../node_modules/remark-gfm/index.js"],"sourcesContent":["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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _extends() {\n module.exports = _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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*!\n\tautosize 4.0.4\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['module', 'exports'], factory);\n\t} else if (typeof exports !== \"undefined\") {\n\t\tfactory(module, exports);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod, mod.exports);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","// This code has been refactored for 140 bytes\n// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js\nvar computedStyle = function (el, prop, getComputedStyle) {\n getComputedStyle = window.getComputedStyle;\n\n // In one fell swoop\n return (\n // If we have getComputedStyle\n getComputedStyle ?\n // Query it\n // TODO: From CSS-Query notes, we might need (node, null) for FF\n getComputedStyle(el) :\n\n // Otherwise, we are in IE and use currentStyle\n el.currentStyle\n )[\n // Switch to camelCase for CSSOM\n // DEV: Grabbed from jQuery\n // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n prop.replace(/-(\\w)/gi, function (word, letter) {\n return letter.toUpperCase();\n })\n ];\n};\n\nmodule.exports = computedStyle;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&null===(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s)))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","'use strict';\n\nvar objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isArray = require('isarray');\nvar isDate = require('is-date-object');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar whichCollection = require('which-collection');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar whichTypedArray = require('which-typed-array');\nvar assign = require('object.assign');\n\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\n\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) { // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') { // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, { strict: false });\n if (\n (typeof curB === 'undefined' && !$mapHas(b, altValue))\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)\n ) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)\n ) {\n $setDelete(set, key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) { channel.set(actual, sentinel); }\n if (!hasExpected) { channel.set(expected, sentinel); }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\n\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) { return false; }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && !$setHas(a, resultB.value)\n && !setHasEqualElement(set, resultB.value, opts.strict, channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if ((typeof item2 === 'undefined' && !$mapHas(b, key)) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n }\n }\n }\n\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel))\n && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { strict: false }), channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5] */\n var i, key;\n\n if (typeof a !== typeof b) { return false; }\n if (a == null || b == null) { return false; }\n\n if ($objToString(a) !== $objToString(b)) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) { return false; }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) { return false; }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) { return false; }\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) { return false; }\n if (aIsDate || bIsDate) { // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) { return false; }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) { return false; }\n\n if (whichTypedArray(a) !== whichTypedArray(b)) {\n return false;\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) { return false; }\n }\n\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') { // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') { // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n\n return true;\n}\n\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","var mapping = {\n name: 'a',\n unified: 'b',\n non_qualified: 'c',\n has_img_apple: 'd',\n has_img_google: 'e',\n has_img_twitter: 'f',\n has_img_facebook: 'h',\n keywords: 'j',\n sheet: 'k',\n emoticons: 'l',\n text: 'm',\n short_names: 'n',\n added_in: 'o'\n};\n\nvar buildSearch = function buildSearch(emoji) {\n var search = [];\n\n var addToSearch = function addToSearch(strings, split) {\n if (!strings) {\n return;\n }\n\n ;\n (Array.isArray(strings) ? strings : [strings]).forEach(function (string) {\n ;\n (split ? string.split(/[-|_|\\s]+/) : [string]).forEach(function (s) {\n s = s.toLowerCase();\n\n if (search.indexOf(s) == -1) {\n search.push(s);\n }\n });\n });\n };\n\n addToSearch(emoji.short_names, true);\n addToSearch(emoji.name, true);\n addToSearch(emoji.keywords, false);\n addToSearch(emoji.emoticons, false);\n return search.join(',');\n};\n\nvar compress = function compress(emoji) {\n emoji.short_names = emoji.short_names.filter(function (short_name) {\n return short_name !== emoji.short_name;\n });\n delete emoji.short_name;\n emoji.sheet = [emoji.sheet_x, emoji.sheet_y];\n delete emoji.sheet_x;\n delete emoji.sheet_y;\n emoji.added_in = parseInt(emoji.added_in);\n\n if (emoji.added_in === 6) {\n delete emoji.added_in;\n }\n\n for (var key in mapping) {\n emoji[mapping[key]] = emoji[key];\n delete emoji[key];\n }\n\n for (var _key in emoji) {\n var value = emoji[_key];\n\n if (Array.isArray(value) && !value.length) {\n delete emoji[_key];\n } else if (typeof value === 'string' && !value.length) {\n delete emoji[_key];\n } else if (value === null) {\n delete emoji[_key];\n }\n }\n};\n\nvar uncompress = function uncompress(data) {\n data.compressed = false;\n\n for (var id in data.emojis) {\n var emoji = data.emojis[id];\n\n for (var key in mapping) {\n emoji[key] = emoji[mapping[key]];\n delete emoji[mapping[key]];\n }\n\n if (!emoji.short_names) emoji.short_names = [];\n emoji.short_names.unshift(id);\n emoji.sheet_x = emoji.sheet[0];\n emoji.sheet_y = emoji.sheet[1];\n delete emoji.sheet;\n if (!emoji.text) emoji.text = '';\n if (!emoji.added_in) emoji.added_in = 6;\n emoji.added_in = emoji.added_in.toFixed(1);\n emoji.search = buildSearch(emoji);\n }\n};\n\nexport { buildSearch, compress, uncompress };","var _String = String;\nexport default _String.fromCodePoint || function stringFromCodePoint() {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n\n if (!length) {\n return '';\n }\n\n var result = '';\n\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = codePoint % 0x400 + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += String.fromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n\n return result;\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport { buildSearch } from './data';\nimport stringFromCodePoint from '../polyfills/stringFromCodePoint';\nimport { uncompress } from './data';\nvar COLONS_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/;\nvar SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];\n\nfunction unifiedToNative(unified) {\n var unicodes = unified.split('-'),\n codePoints = unicodes.map(function (u) {\n return \"0x\".concat(u);\n });\n return stringFromCodePoint.apply(null, codePoints);\n}\n\nfunction sanitize(emoji) {\n var name = emoji.name,\n short_names = emoji.short_names,\n skin_tone = emoji.skin_tone,\n skin_variations = emoji.skin_variations,\n emoticons = emoji.emoticons,\n unified = emoji.unified,\n custom = emoji.custom,\n customCategory = emoji.customCategory,\n imageUrl = emoji.imageUrl,\n id = emoji.id || short_names[0],\n colons = \":\".concat(id, \":\");\n\n if (custom) {\n return {\n id: id,\n name: name,\n short_names: short_names,\n colons: colons,\n emoticons: emoticons,\n custom: custom,\n customCategory: customCategory,\n imageUrl: imageUrl\n };\n }\n\n if (skin_tone) {\n colons += \":skin-tone-\".concat(skin_tone, \":\");\n }\n\n return {\n id: id,\n name: name,\n short_names: short_names,\n colons: colons,\n emoticons: emoticons,\n unified: unified.toLowerCase(),\n skin: skin_tone || (skin_variations ? 1 : null),\n \"native\": unifiedToNative(unified)\n };\n}\n\nfunction getSanitizedData() {\n return sanitize(getData.apply(void 0, arguments));\n}\n\nfunction getData(emoji, skin, set, data) {\n var emojiData = {};\n\n if (typeof emoji == 'string') {\n var matches = emoji.match(COLONS_REGEX);\n\n if (matches) {\n emoji = matches[1];\n\n if (matches[2]) {\n skin = parseInt(matches[2], 10);\n }\n }\n\n if (data.aliases.hasOwnProperty(emoji)) {\n emoji = data.aliases[emoji];\n }\n\n if (data.emojis.hasOwnProperty(emoji)) {\n emojiData = data.emojis[emoji];\n } else {\n return null;\n }\n } else if (emoji.id) {\n if (data.aliases.hasOwnProperty(emoji.id)) {\n emoji.id = data.aliases[emoji.id];\n }\n\n if (data.emojis.hasOwnProperty(emoji.id)) {\n emojiData = data.emojis[emoji.id];\n skin || (skin = emoji.skin);\n }\n }\n\n if (!Object.keys(emojiData).length) {\n emojiData = emoji;\n emojiData.custom = true;\n\n if (!emojiData.search) {\n emojiData.search = buildSearch(emoji);\n }\n }\n\n emojiData.emoticons || (emojiData.emoticons = []);\n emojiData.variations || (emojiData.variations = []);\n\n if (emojiData.skin_variations && skin > 1) {\n emojiData = JSON.parse(JSON.stringify(emojiData));\n var skinKey = SKINS[skin - 1],\n variationData = emojiData.skin_variations[skinKey];\n\n if (variationData) {\n if (!variationData.variations && emojiData.variations) {\n delete emojiData.variations;\n }\n\n if (set && (variationData[\"has_img_\".concat(set)] == undefined || variationData[\"has_img_\".concat(set)]) || !set) {\n emojiData.skin_tone = skin;\n\n for (var k in variationData) {\n var v = variationData[k];\n emojiData[k] = v;\n }\n }\n }\n }\n\n if (emojiData.variations && emojiData.variations.length) {\n emojiData = JSON.parse(JSON.stringify(emojiData));\n emojiData.unified = emojiData.variations.shift();\n }\n\n return emojiData;\n}\n\nfunction getEmojiDataFromNative(nativeString, set, data) {\n if (data.compressed) {\n uncompress(data);\n }\n\n var skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];\n var skinCodes = ['1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF'];\n var skin;\n var skinCode;\n var baseNativeString = nativeString;\n skinTones.forEach(function (skinTone, skinToneIndex) {\n if (nativeString.indexOf(skinTone) > 0) {\n skin = skinToneIndex + 2;\n skinCode = skinCodes[skinToneIndex];\n }\n });\n var emojiData;\n\n for (var id in data.emojis) {\n var emoji = data.emojis[id];\n var emojiUnified = emoji.unified;\n\n if (emoji.variations && emoji.variations.length) {\n emojiUnified = emoji.variations.shift();\n }\n\n if (skin && emoji.skin_variations && emoji.skin_variations[skinCode]) {\n emojiUnified = emoji.skin_variations[skinCode].unified;\n }\n\n if (unifiedToNative(emojiUnified) === baseNativeString) emojiData = emoji;\n }\n\n if (!emojiData) {\n return null;\n }\n\n emojiData.id = emojiData.short_names[0];\n return getSanitizedData(emojiData, skin, set, data);\n}\n\nfunction uniq(arr) {\n return arr.reduce(function (acc, item) {\n if (acc.indexOf(item) === -1) {\n acc.push(item);\n }\n\n return acc;\n }, []);\n}\n\nfunction intersect(a, b) {\n var uniqA = uniq(a);\n var uniqB = uniq(b);\n return uniqA.filter(function (item) {\n return uniqB.indexOf(item) >= 0;\n });\n}\n\nfunction deepMerge(a, b) {\n var o = {};\n\n for (var key in a) {\n var originalValue = a[key],\n value = originalValue;\n\n if (b.hasOwnProperty(key)) {\n value = b[key];\n }\n\n if (_typeof(value) === 'object') {\n value = deepMerge(originalValue, value);\n }\n\n o[key] = value;\n }\n\n return o;\n} // https://github.com/sonicdoe/measure-scrollbar\n\n\nfunction measureScrollbar() {\n if (typeof document == 'undefined') return 0;\n var div = document.createElement('div');\n div.style.width = '100px';\n div.style.height = '100px';\n div.style.overflow = 'scroll';\n div.style.position = 'absolute';\n div.style.top = '-9999px';\n document.body.appendChild(div);\n var scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n return scrollbarWidth;\n} // Use requestIdleCallback() if available, else fall back to setTimeout().\n// Throttle so as not to run too frequently.\n\n\nfunction throttleIdleTask(func) {\n var doIdleTask = typeof requestIdleCallback === 'function' ? requestIdleCallback : setTimeout;\n var running = false;\n return function throttled() {\n if (running) {\n return;\n }\n\n running = true;\n doIdleTask(function () {\n running = false;\n func();\n });\n };\n}\n\nexport { getData, getEmojiDataFromNative, getSanitizedData, uniq, intersect, deepMerge, unifiedToNative, measureScrollbar, throttleIdleTask };","var NAMESPACE = 'emoji-mart';\nvar isLocalStorageSupported = typeof window !== 'undefined' && 'localStorage' in window;\nvar getter;\nvar setter;\n\nfunction setHandlers(handlers) {\n handlers || (handlers = {});\n getter = handlers.getter;\n setter = handlers.setter;\n}\n\nfunction setNamespace(namespace) {\n NAMESPACE = namespace;\n}\n\nfunction update(state) {\n for (var key in state) {\n var value = state[key];\n set(key, value);\n }\n}\n\nfunction set(key, value) {\n if (setter) {\n setter(key, value);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n window.localStorage[\"\".concat(NAMESPACE, \".\").concat(key)] = JSON.stringify(value);\n } catch (e) {}\n }\n}\n\nfunction get(key) {\n if (getter) {\n return getter(key);\n } else {\n if (!isLocalStorageSupported) return;\n\n try {\n var value = window.localStorage[\"\".concat(NAMESPACE, \".\").concat(key)];\n\n if (value) {\n return JSON.parse(value);\n }\n } catch (e) {\n return;\n }\n }\n}\n\nexport default {\n update: update,\n set: set,\n get: get,\n setNamespace: setNamespace,\n setHandlers: setHandlers\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { getData, getSanitizedData, intersect } from '..';\nimport { uncompress } from '../data';\nimport store from '../store';\n\nvar NimbleEmojiIndex =\n/*#__PURE__*/\nfunction () {\n function NimbleEmojiIndex(data, set) {\n _classCallCheck(this, NimbleEmojiIndex);\n\n if (data.compressed) {\n uncompress(data);\n }\n\n this.data = data || {};\n this.set = set || null;\n this.originalPool = {};\n this.index = {};\n this.emojis = {};\n this.emoticons = {};\n this.customEmojisList = [];\n this.buildIndex();\n }\n\n _createClass(NimbleEmojiIndex, [{\n key: \"buildIndex\",\n value: function buildIndex() {\n var _this = this;\n\n var _loop = function _loop(emoji) {\n var emojiData = _this.data.emojis[emoji],\n short_names = emojiData.short_names,\n emoticons = emojiData.emoticons,\n skin_variations = emojiData.skin_variations,\n id = short_names[0];\n\n if (emoticons) {\n emoticons.forEach(function (emoticon) {\n if (_this.emoticons[emoticon]) {\n return;\n }\n\n _this.emoticons[emoticon] = id;\n });\n } // If skin variations include them\n\n\n if (skin_variations) {\n _this.emojis[id] = {};\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n _this.emojis[id][skinTone] = getSanitizedData({\n id: id,\n skin: skinTone\n }, skinTone, _this.set, _this.data);\n }\n } else {\n _this.emojis[id] = getSanitizedData(id, null, _this.set, _this.data);\n }\n\n _this.originalPool[id] = emojiData;\n };\n\n for (var emoji in this.data.emojis) {\n _loop(emoji);\n }\n }\n }, {\n key: \"clearCustomEmojis\",\n value: function clearCustomEmojis(pool) {\n var _this2 = this;\n\n this.customEmojisList.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n delete pool[emojiId];\n delete _this2.emojis[emojiId];\n });\n }\n }, {\n key: \"addCustomToPool\",\n value: function addCustomToPool(custom, pool) {\n var _this3 = this;\n\n if (this.customEmojisList.length) this.clearCustomEmojis(pool);\n custom.forEach(function (emoji) {\n var emojiId = emoji.id || emoji.short_names[0];\n\n if (emojiId && !pool[emojiId]) {\n pool[emojiId] = getData(emoji, null, null, _this3.data);\n _this3.emojis[emojiId] = getSanitizedData(emoji, null, null, _this3.data);\n }\n });\n this.customEmojisList = custom;\n this.index = {};\n }\n }, {\n key: \"search\",\n value: function search(value) {\n var _this4 = this;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n emojisToShowFilter = _ref.emojisToShowFilter,\n maxResults = _ref.maxResults,\n include = _ref.include,\n exclude = _ref.exclude,\n _ref$custom = _ref.custom,\n custom = _ref$custom === void 0 ? [] : _ref$custom;\n\n if (this.customEmojisList != custom) this.addCustomToPool(custom, this.originalPool);\n var skinTone = store.get('skin') || 1;\n maxResults || (maxResults = 75);\n include || (include = []);\n exclude || (exclude = []);\n var results = null,\n pool = this.originalPool;\n\n if (value.length) {\n if (value == '-' || value == '-1') {\n return [this.emojis['-1'][skinTone]];\n }\n\n var values = value.toLowerCase().split(/[\\s|,|\\-|_]+/),\n allResults = [];\n\n if (values.length > 2) {\n values = [values[0], values[1]];\n }\n\n if (include.length || exclude.length) {\n pool = {};\n this.data.categories.forEach(function (category) {\n var isIncluded = include && include.length ? include.indexOf(category.id) > -1 : true;\n var isExcluded = exclude && exclude.length ? exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n return;\n }\n\n category.emojis.forEach(function (emojiId) {\n return pool[emojiId] = _this4.data.emojis[emojiId];\n });\n });\n\n if (custom.length) {\n var customIsIncluded = include && include.length ? include.indexOf('custom') > -1 : true;\n var customIsExcluded = exclude && exclude.length ? exclude.indexOf('custom') > -1 : false;\n\n if (customIsIncluded && !customIsExcluded) {\n this.addCustomToPool(custom, pool);\n }\n }\n }\n\n allResults = values.map(function (value) {\n var aPool = pool,\n aIndex = _this4.index,\n length = 0;\n\n for (var charIndex = 0; charIndex < value.length; charIndex++) {\n var _char = value[charIndex];\n length++;\n aIndex[_char] || (aIndex[_char] = {});\n aIndex = aIndex[_char];\n\n if (!aIndex.results) {\n (function () {\n var scores = {};\n aIndex.results = [];\n aIndex.pool = {};\n\n for (var id in aPool) {\n var emoji = aPool[id],\n search = emoji.search,\n sub = value.substr(0, length),\n subIndex = search.indexOf(sub);\n\n if (subIndex != -1) {\n var score = subIndex + 1;\n if (sub == id) score = 0;\n\n if (_this4.emojis[id] && _this4.emojis[id][skinTone]) {\n aIndex.results.push(_this4.emojis[id][skinTone]);\n } else {\n aIndex.results.push(_this4.emojis[id]);\n }\n\n aIndex.pool[id] = emoji;\n scores[id] = score;\n }\n }\n\n aIndex.results.sort(function (a, b) {\n var aScore = scores[a.id],\n bScore = scores[b.id];\n\n if (aScore == bScore) {\n return a.id.localeCompare(b.id);\n } else {\n return aScore - bScore;\n }\n });\n })();\n }\n\n aPool = aIndex.pool;\n }\n\n return aIndex.results;\n }).filter(function (a) {\n return a;\n });\n\n if (allResults.length > 1) {\n results = intersect.apply(null, allResults);\n } else if (allResults.length) {\n results = allResults[0];\n } else {\n results = [];\n }\n }\n\n if (results) {\n if (emojisToShowFilter) {\n results = results.filter(function (result) {\n return emojisToShowFilter(pool[result.id]);\n });\n }\n\n if (results && results.length > maxResults) {\n results = results.slice(0, maxResults);\n }\n }\n\n return results;\n }\n }]);\n\n return NimbleEmojiIndex;\n}();\n\nexport { NimbleEmojiIndex as default };","import data from '../../../data/all.json';\nimport NimbleEmojiIndex from './nimble-emoji-index';\nvar emojiIndex = new NimbleEmojiIndex(data);\nvar emojis = emojiIndex.emojis,\n emoticons = emojiIndex.emoticons;\n\nfunction search() {\n return emojiIndex.search.apply(emojiIndex, arguments);\n}\n\nexport default {\n search: search,\n emojis: emojis,\n emoticons: emoticons\n};","import store from './store';\nvar DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'scream', 'disappointed', 'unamused', 'weary', 'sob', 'sunglasses', 'heart', 'poop'];\nvar frequently, initialized;\nvar defaults = {};\n\nfunction init() {\n initialized = true;\n frequently = store.get('frequently');\n}\n\nfunction add(emoji) {\n if (!initialized) init();\n var id = emoji.id;\n frequently || (frequently = defaults);\n frequently[id] || (frequently[id] = 0);\n frequently[id] += 1;\n store.set('last', id);\n store.set('frequently', frequently);\n}\n\nfunction get(perLine) {\n if (!initialized) init();\n\n if (!frequently) {\n defaults = {};\n var result = [];\n\n for (var i = 0; i < perLine; i++) {\n defaults[DEFAULTS[i]] = perLine - i;\n result.push(DEFAULTS[i]);\n }\n\n return result;\n }\n\n var quantity = perLine * 4;\n var frequentlyKeys = [];\n\n for (var key in frequently) {\n if (frequently.hasOwnProperty(key)) {\n frequentlyKeys.push(key);\n }\n }\n\n var sorted = frequentlyKeys.sort(function (a, b) {\n return frequently[a] - frequently[b];\n }).reverse();\n var sliced = sorted.slice(0, quantity);\n var last = store.get('last');\n\n if (last && sliced.indexOf(last) == -1) {\n sliced.pop();\n sliced.push(last);\n }\n\n return sliced;\n}\n\nexport default {\n add: add,\n get: get\n};","export default function _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}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import React from 'react';\nvar categories = {\n activity: function activity() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"\n }));\n },\n custom: function custom() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"g\", {\n transform: \"translate(2.000000, 1.000000)\"\n }, React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: \"8\",\n y: \"0\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n }), React.createElement(\"rect\", {\n id: \"Rectangle\",\n transform: \"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \",\n x: \"8.343\",\n y: \"0.049\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n }), React.createElement(\"rect\", {\n id: \"Rectangle\",\n transform: \"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \",\n x: \"8.343\",\n y: \"0.049\",\n width: \"3\",\n height: \"21\",\n rx: \"1.5\"\n })));\n },\n flags: function flags() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"\n }));\n },\n foods: function foods() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"\n }));\n },\n nature: function nature() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"\n }), React.createElement(\"path\", {\n d: \"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"\n }));\n },\n objects: function objects() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"\n }), React.createElement(\"path\", {\n d: \"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"\n }));\n },\n people: function people() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n }), React.createElement(\"path\", {\n d: \"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"\n }));\n },\n places: function places() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"\n }), React.createElement(\"path\", {\n d: \"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"\n }));\n },\n recent: function recent() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"\n }), React.createElement(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n }));\n },\n symbols: function symbols() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n height: \"24\"\n }, React.createElement(\"path\", {\n d: \"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"\n }));\n }\n};\nvar search = {\n search: function search() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"13\",\n height: \"13\",\n viewBox: \"0 0 20 20\",\n opacity: \"0.5\"\n }, React.createElement(\"path\", {\n d: \"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z\"\n }));\n },\n \"delete\": function _delete() {\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"13\",\n height: \"13\",\n viewBox: \"0 0 20 20\",\n opacity: \"0.5\"\n }, React.createElement(\"path\", {\n d: \"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z\"\n }));\n }\n};\nexport { categories, search };","import PropTypes from 'prop-types';\nvar EmojiPropTypes = {\n data: PropTypes.object.isRequired,\n onOver: PropTypes.func,\n onLeave: PropTypes.func,\n onClick: PropTypes.func,\n fallback: PropTypes.func,\n backgroundImageFn: PropTypes.func,\n \"native\": PropTypes.bool,\n forceSize: PropTypes.bool,\n tooltip: PropTypes.bool,\n useButton: PropTypes.bool,\n skin: PropTypes.oneOf([1, 2, 3, 4, 5, 6]),\n sheetSize: PropTypes.oneOf([16, 20, 32, 64]),\n sheetColumns: PropTypes.number,\n sheetRows: PropTypes.number,\n set: PropTypes.oneOf(['apple', 'google', 'twitter', 'facebook']),\n size: PropTypes.number.isRequired,\n emoji: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nvar PickerPropTypes = {\n onClick: PropTypes.func,\n onSelect: PropTypes.func,\n onSkinChange: PropTypes.func,\n perLine: PropTypes.number,\n emojiSize: PropTypes.number,\n i18n: PropTypes.object,\n style: PropTypes.object,\n title: PropTypes.string,\n emoji: PropTypes.string,\n color: PropTypes.string,\n set: EmojiPropTypes.set,\n skin: EmojiPropTypes.skin,\n \"native\": PropTypes.bool,\n backgroundImageFn: EmojiPropTypes.backgroundImageFn,\n sheetSize: EmojiPropTypes.sheetSize,\n emojisToShowFilter: PropTypes.func,\n showPreview: PropTypes.bool,\n showSkinTones: PropTypes.bool,\n emojiTooltip: EmojiPropTypes.tooltip,\n useButton: EmojiPropTypes.useButton,\n theme: PropTypes.oneOf(['auto', 'light', 'dark']),\n include: PropTypes.arrayOf(PropTypes.string),\n exclude: PropTypes.arrayOf(PropTypes.string),\n recent: PropTypes.arrayOf(PropTypes.string),\n autoFocus: PropTypes.bool,\n enableFrequentEmojiSort: PropTypes.bool,\n custom: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n short_names: PropTypes.arrayOf(PropTypes.string).isRequired,\n emoticons: PropTypes.arrayOf(PropTypes.string),\n keywords: PropTypes.arrayOf(PropTypes.string),\n imageUrl: PropTypes.string,\n spriteUrl: PropTypes.string,\n sheet_x: PropTypes.number,\n sheet_y: PropTypes.number,\n size: PropTypes.number,\n sheetColumns: PropTypes.number,\n sheetRows: PropTypes.number\n })),\n skinEmoji: PropTypes.string,\n notFound: PropTypes.func,\n notFoundEmoji: PropTypes.string,\n icons: PropTypes.object\n};\nexport { EmojiPropTypes, PickerPropTypes };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Anchors =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Anchors, _React$PureComponent);\n\n function Anchors(props) {\n var _this;\n\n _classCallCheck(this, Anchors);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Anchors).call(this, props));\n var defaultCategory = props.categories.filter(function (category) {\n return category.first;\n })[0];\n _this.state = {\n selected: defaultCategory.name\n };\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Anchors, [{\n key: \"handleClick\",\n value: function handleClick(e) {\n var index = e.currentTarget.getAttribute('data-index');\n var _this$props = this.props,\n categories = _this$props.categories,\n onAnchorClick = _this$props.onAnchorClick;\n onAnchorClick(categories[index], index);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n categories = _this$props2.categories,\n color = _this$props2.color,\n i18n = _this$props2.i18n,\n icons = _this$props2.icons,\n selected = this.state.selected;\n return React.createElement(\"nav\", {\n className: \"emoji-mart-anchors\",\n \"aria-label\": i18n.categorieslabel\n }, categories.map(function (category, i) {\n var id = category.id,\n name = category.name,\n anchor = category.anchor,\n isSelected = name == selected;\n\n if (anchor === false) {\n return null;\n }\n\n var iconId = id.startsWith('custom-') ? 'custom' : id;\n return React.createElement(\"button\", {\n key: id,\n \"aria-label\": i18n.categories[iconId],\n title: i18n.categories[iconId],\n \"data-index\": i,\n type: 'button',\n onClick: _this2.handleClick,\n className: \"emoji-mart-anchor \".concat(isSelected ? 'emoji-mart-anchor-selected' : ''),\n style: {\n color: isSelected ? color : null\n }\n }, React.createElement(\"div\", {\n className: \"emoji-mart-anchor-icon\"\n }, icons.categories[iconId]()), React.createElement(\"span\", {\n className: \"emoji-mart-anchor-bar\",\n style: {\n backgroundColor: color\n }\n }));\n }));\n }\n }]);\n\n return Anchors;\n}(React.PureComponent);\n\nexport { Anchors as default };\nAnchors.propTypes\n/* remove-proptypes */\n= {\n categories: PropTypes.array,\n onAnchorClick: PropTypes.func,\n icons: PropTypes.object\n};\nAnchors.defaultProps = {\n categories: [],\n onAnchorClick: function onAnchorClick() {},\n icons: {}\n};","var EmojiDefaultProps = {\n skin: 1,\n set: 'apple',\n sheetSize: 64,\n sheetColumns: 57,\n sheetRows: 57,\n \"native\": false,\n forceSize: false,\n tooltip: false,\n useButton: true,\n backgroundImageFn: function backgroundImageFn(set, sheetSize) {\n return \"https://unpkg.com/emoji-datasource-\".concat(set, \"@\").concat(\"5.0.1\", \"/img/\").concat(set, \"/sheets-256/\").concat(sheetSize, \".png\");\n }\n};\nvar PickerDefaultProps = {\n onClick: function onClick() {},\n onSelect: function onSelect() {},\n onSkinChange: function onSkinChange() {},\n emojiSize: 24,\n perLine: 9,\n i18n: {},\n style: {},\n title: 'Emoji Mart™',\n emoji: 'department_store',\n color: '#ae65c5',\n set: EmojiDefaultProps.set,\n theme: 'light',\n skin: null,\n defaultSkin: EmojiDefaultProps.skin,\n \"native\": EmojiDefaultProps[\"native\"],\n sheetSize: EmojiDefaultProps.sheetSize,\n backgroundImageFn: EmojiDefaultProps.backgroundImageFn,\n emojisToShowFilter: null,\n showPreview: true,\n showSkinTones: true,\n emojiTooltip: EmojiDefaultProps.tooltip,\n useButton: EmojiDefaultProps.useButton,\n autoFocus: false,\n enableFrequentEmojiSort: false,\n custom: [],\n skinEmoji: '',\n notFound: function notFound() {},\n notFoundEmoji: 'sleuth_or_spy',\n icons: {}\n};\nexport { PickerDefaultProps, EmojiDefaultProps };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData, getSanitizedData, unifiedToNative } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { EmojiPropTypes } from '../../utils/shared-props';\nimport { EmojiDefaultProps } from '../../utils/shared-default-props';\n\nvar _getData = function _getData(props) {\n var emoji = props.emoji,\n skin = props.skin,\n set = props.set,\n data = props.data;\n return getData(emoji, skin, set, data);\n};\n\nvar _getPosition = function _getPosition(props) {\n var _getData2 = _getData(props),\n sheet_x = _getData2.sheet_x,\n sheet_y = _getData2.sheet_y,\n multiplyX = 100 / (props.sheetColumns - 1),\n multiplyY = 100 / (props.sheetRows - 1);\n\n return \"\".concat(multiplyX * sheet_x, \"% \").concat(multiplyY * sheet_y, \"%\");\n};\n\nvar _getSanitizedData = function _getSanitizedData(props) {\n var emoji = props.emoji,\n skin = props.skin,\n set = props.set,\n data = props.data;\n return getSanitizedData(emoji, skin, set, data);\n};\n\nvar _handleClick = function _handleClick(e, props) {\n if (!props.onClick) {\n return;\n }\n\n var onClick = props.onClick,\n emoji = _getSanitizedData(props);\n\n onClick(emoji, e);\n};\n\nvar _handleOver = function _handleOver(e, props) {\n if (!props.onOver) {\n return;\n }\n\n var onOver = props.onOver,\n emoji = _getSanitizedData(props);\n\n onOver(emoji, e);\n};\n\nvar _handleLeave = function _handleLeave(e, props) {\n if (!props.onLeave) {\n return;\n }\n\n var onLeave = props.onLeave,\n emoji = _getSanitizedData(props);\n\n onLeave(emoji, e);\n};\n\nvar _isNumeric = function _isNumeric(value) {\n return !isNaN(value - parseFloat(value));\n};\n\nvar _convertStyleToCSS = function _convertStyleToCSS(style) {\n var div = document.createElement('div');\n\n for (var key in style) {\n var value = style[key];\n\n if (_isNumeric(value)) {\n value += 'px';\n }\n\n div.style[key] = value;\n }\n\n return div.getAttribute('style');\n};\n\nvar NimbleEmoji = function NimbleEmoji(props) {\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n for (var k in NimbleEmoji.defaultProps) {\n if (props[k] == undefined && NimbleEmoji.defaultProps[k] != undefined) {\n props[k] = NimbleEmoji.defaultProps[k];\n }\n }\n\n var data = _getData(props);\n\n if (!data) {\n if (props.fallback) {\n return props.fallback(null, props);\n } else {\n return null;\n }\n }\n\n var unified = data.unified,\n custom = data.custom,\n short_names = data.short_names,\n imageUrl = data.imageUrl,\n style = {},\n children = props.children,\n className = 'emoji-mart-emoji',\n nativeEmoji = unified && unifiedToNative(unified),\n label = [nativeEmoji].concat(short_names).filter(Boolean).join(', '),\n title = null;\n\n if (!unified && !custom) {\n if (props.fallback) {\n return props.fallback(data, props);\n } else {\n return null;\n }\n }\n\n if (props.tooltip) {\n title = short_names[0];\n }\n\n if (props[\"native\"] && unified) {\n className += ' emoji-mart-emoji-native';\n style = {\n fontSize: props.size\n };\n children = nativeEmoji;\n\n if (props.forceSize) {\n style.display = 'inline-block';\n style.width = props.size;\n style.height = props.size;\n style.wordBreak = 'keep-all';\n }\n } else if (custom) {\n className += ' emoji-mart-emoji-custom';\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block'\n };\n\n if (data.spriteUrl) {\n style = _objectSpread({}, style, {\n backgroundImage: \"url(\".concat(data.spriteUrl, \")\"),\n backgroundSize: \"\".concat(100 * props.sheetColumns, \"% \").concat(100 * props.sheetRows, \"%\"),\n backgroundPosition: _getPosition(props)\n });\n } else {\n style = _objectSpread({}, style, {\n backgroundImage: \"url(\".concat(imageUrl, \")\"),\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n });\n }\n } else {\n var setHasEmoji = data[\"has_img_\".concat(props.set)] == undefined || data[\"has_img_\".concat(props.set)];\n\n if (!setHasEmoji) {\n if (props.fallback) {\n return props.fallback(data, props);\n } else {\n return null;\n }\n } else {\n style = {\n width: props.size,\n height: props.size,\n display: 'inline-block',\n backgroundImage: \"url(\".concat(props.backgroundImageFn(props.set, props.sheetSize), \")\"),\n backgroundSize: \"\".concat(100 * props.sheetColumns, \"% \").concat(100 * props.sheetRows, \"%\"),\n backgroundPosition: _getPosition(props)\n };\n }\n }\n\n var Tag = {\n name: 'span',\n props: {}\n };\n\n if (props.onClick && props.useButton) {\n Tag.name = 'button';\n Tag.props = {\n type: 'button'\n };\n }\n\n if (props.html) {\n style = _convertStyleToCSS(style);\n return \"<\".concat(Tag.name, \" style='\").concat(style, \"' aria-label='\").concat(label, \"' \").concat(title ? \"title='\".concat(title, \"'\") : '', \" class='\").concat(className, \"'>\").concat(children || '', \"\");\n } else {\n return React.createElement(Tag.name, _extends({\n onClick: function onClick(e) {\n return _handleClick(e, props);\n },\n onMouseEnter: function onMouseEnter(e) {\n return _handleOver(e, props);\n },\n onMouseLeave: function onMouseLeave(e) {\n return _handleLeave(e, props);\n },\n \"aria-label\": label,\n title: title,\n className: className\n }, Tag.props), React.createElement(\"span\", {\n style: style\n }, children));\n }\n};\n\nNimbleEmoji.propTypes\n/* remove-proptypes */\n= _objectSpread({}, EmojiPropTypes, {\n data: PropTypes.object.isRequired\n});\nNimbleEmoji.defaultProps = EmojiDefaultProps;\nexport default NimbleEmoji;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport NimbleEmoji from './emoji/nimble-emoji';\n\nvar NotFound =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(NotFound, _React$PureComponent);\n\n function NotFound() {\n _classCallCheck(this, NotFound);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NotFound).apply(this, arguments));\n }\n\n _createClass(NotFound, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n data = _this$props.data,\n emojiProps = _this$props.emojiProps,\n i18n = _this$props.i18n,\n notFound = _this$props.notFound,\n notFoundEmoji = _this$props.notFoundEmoji;\n var component = notFound && notFound() || React.createElement(\"div\", {\n className: \"emoji-mart-no-results\"\n }, NimbleEmoji(_objectSpread({\n data: data\n }, emojiProps, {\n size: 38,\n emoji: notFoundEmoji,\n onOver: null,\n onLeave: null,\n onClick: null\n })), React.createElement(\"div\", {\n className: \"emoji-mart-no-results-label\"\n }, i18n.notfound));\n return component;\n }\n }]);\n\n return NotFound;\n}(React.PureComponent);\n\nexport { NotFound as default };\nNotFound.propTypes\n/* remove-proptypes */\n= {\n notFound: PropTypes.func.isRequired,\n emojiProps: PropTypes.object.isRequired\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport frequently from '../utils/frequently';\nimport { getData } from '../utils';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport NotFound from './not-found';\n\nvar Category =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Category, _React$Component);\n\n function Category(props) {\n var _this;\n\n _classCallCheck(this, Category);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Category).call(this, props));\n _this.data = props.data;\n _this.setContainerRef = _this.setContainerRef.bind(_assertThisInitialized(_this));\n _this.setLabelRef = _this.setLabelRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Category, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.margin = 0;\n this.minMargin = 0;\n this.memoizeSize();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var _this$props = this.props,\n name = _this$props.name,\n perLine = _this$props.perLine,\n _native = _this$props[\"native\"],\n hasStickyPosition = _this$props.hasStickyPosition,\n emojis = _this$props.emojis,\n emojiProps = _this$props.emojiProps,\n skin = emojiProps.skin,\n size = emojiProps.size,\n set = emojiProps.set,\n nextPerLine = nextProps.perLine,\n nextNative = nextProps[\"native\"],\n nextHasStickyPosition = nextProps.hasStickyPosition,\n nextEmojis = nextProps.emojis,\n nextEmojiProps = nextProps.emojiProps,\n nextSkin = nextEmojiProps.skin,\n nextSize = nextEmojiProps.size,\n nextSet = nextEmojiProps.set,\n shouldUpdate = false;\n\n if (name == 'Recent' && perLine != nextPerLine) {\n shouldUpdate = true;\n }\n\n if (name == 'Search') {\n shouldUpdate = !(emojis == nextEmojis);\n }\n\n if (skin != nextSkin || size != nextSize || _native != nextNative || set != nextSet || hasStickyPosition != nextHasStickyPosition) {\n shouldUpdate = true;\n }\n\n return shouldUpdate;\n }\n }, {\n key: \"memoizeSize\",\n value: function memoizeSize() {\n if (!this.container) {\n // probably this is a test environment, e.g. jest\n this.top = 0;\n this.maxMargin = 0;\n return;\n }\n\n var parent = this.container.parentElement;\n\n var _this$container$getBo = this.container.getBoundingClientRect(),\n top = _this$container$getBo.top,\n height = _this$container$getBo.height;\n\n var _parent$getBoundingCl = parent.getBoundingClientRect(),\n parentTop = _parent$getBoundingCl.top;\n\n var _this$label$getBoundi = this.label.getBoundingClientRect(),\n labelHeight = _this$label$getBoundi.height;\n\n this.top = top - parentTop + parent.scrollTop;\n\n if (height == 0) {\n this.maxMargin = 0;\n } else {\n this.maxMargin = height - labelHeight;\n }\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll(scrollTop) {\n var margin = scrollTop - this.top;\n margin = margin < this.minMargin ? this.minMargin : margin;\n margin = margin > this.maxMargin ? this.maxMargin : margin;\n if (margin == this.margin) return;\n\n if (!this.props.hasStickyPosition) {\n this.label.style.top = \"\".concat(margin, \"px\");\n }\n\n this.margin = margin;\n return true;\n }\n }, {\n key: \"getEmojis\",\n value: function getEmojis() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n name = _this$props2.name,\n emojis = _this$props2.emojis,\n recent = _this$props2.recent,\n perLine = _this$props2.perLine;\n\n if (name == 'Recent') {\n var custom = this.props.custom;\n var frequentlyUsed = recent || frequently.get(perLine);\n\n if (frequentlyUsed.length) {\n emojis = frequentlyUsed.map(function (id) {\n var emoji = custom.filter(function (e) {\n return e.id === id;\n })[0];\n\n if (emoji) {\n return emoji;\n }\n\n return id;\n }).filter(function (id) {\n return !!getData(id, null, null, _this2.data);\n });\n }\n\n if (emojis.length === 0 && frequentlyUsed.length > 0) {\n return null;\n }\n }\n\n if (emojis) {\n emojis = emojis.slice(0);\n }\n\n return emojis;\n }\n }, {\n key: \"updateDisplay\",\n value: function updateDisplay(display) {\n var emojis = this.getEmojis();\n\n if (!emojis || !this.container) {\n return;\n }\n\n this.container.style.display = display;\n }\n }, {\n key: \"setContainerRef\",\n value: function setContainerRef(c) {\n this.container = c;\n }\n }, {\n key: \"setLabelRef\",\n value: function setLabelRef(c) {\n this.label = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n id = _this$props3.id,\n name = _this$props3.name,\n hasStickyPosition = _this$props3.hasStickyPosition,\n emojiProps = _this$props3.emojiProps,\n i18n = _this$props3.i18n,\n notFound = _this$props3.notFound,\n notFoundEmoji = _this$props3.notFoundEmoji,\n emojis = this.getEmojis(),\n labelStyles = {},\n labelSpanStyles = {},\n containerStyles = {};\n\n if (!emojis) {\n containerStyles = {\n display: 'none'\n };\n }\n\n if (!hasStickyPosition) {\n labelStyles = {\n height: 28\n };\n labelSpanStyles = {\n position: 'absolute'\n };\n }\n\n var label = i18n.categories[id] || name;\n return React.createElement(\"section\", {\n ref: this.setContainerRef,\n className: \"emoji-mart-category\",\n \"aria-label\": label,\n style: containerStyles\n }, React.createElement(\"div\", {\n style: labelStyles,\n \"data-name\": name,\n className: \"emoji-mart-category-label\"\n }, React.createElement(\"span\", {\n style: labelSpanStyles,\n ref: this.setLabelRef,\n \"aria-hidden\": true\n /* already labeled by the section aria-label */\n\n }, label)), React.createElement(\"ul\", {\n className: \"emoji-mart-category-list\"\n }, emojis && emojis.map(function (emoji) {\n return React.createElement(\"li\", {\n key: emoji.short_names && emoji.short_names.join('_') || emoji\n }, NimbleEmoji(_objectSpread({\n emoji: emoji,\n data: _this3.data\n }, emojiProps)));\n })), emojis && !emojis.length && React.createElement(NotFound, {\n i18n: i18n,\n notFound: notFound,\n notFoundEmoji: notFoundEmoji,\n data: this.data,\n emojiProps: emojiProps\n }));\n }\n }]);\n\n return Category;\n}(React.Component);\n\nexport { Category as default };\nCategory.propTypes\n/* remove-proptypes */\n= {\n emojis: PropTypes.array,\n hasStickyPosition: PropTypes.bool,\n name: PropTypes.string.isRequired,\n \"native\": PropTypes.bool.isRequired,\n perLine: PropTypes.number.isRequired,\n emojiProps: PropTypes.object.isRequired,\n recent: PropTypes.arrayOf(PropTypes.string),\n notFound: PropTypes.func,\n notFoundEmoji: PropTypes.string.isRequired\n};\nCategory.defaultProps = {\n emojis: [],\n hasStickyPosition: true\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Skins =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Skins, _React$PureComponent);\n\n function Skins(props) {\n var _this;\n\n _classCallCheck(this, Skins);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Skins).call(this, props));\n _this.state = {\n opened: false\n };\n return _this;\n }\n\n _createClass(Skins, [{\n key: \"handleClick\",\n value: function handleClick(e) {\n var skin = parseInt(e.currentTarget.getAttribute('data-skin'));\n var onChange = this.props.onChange;\n\n if (!this.state.opened) {\n this.setState({\n opened: true\n });\n } else {\n this.setState({\n opened: false\n });\n\n if (skin != this.props.skin) {\n onChange(skin);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return Skins;\n}(React.PureComponent);\n\nexport { Skins as default };\nSkins.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired\n};\nSkins.defaultProps = {\n onChange: function onChange() {}\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport Skins from './skins';\n\nvar SkinsEmoji =\n/*#__PURE__*/\nfunction (_Skins) {\n _inherits(SkinsEmoji, _Skins);\n\n function SkinsEmoji(props) {\n var _this;\n\n _classCallCheck(this, SkinsEmoji);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SkinsEmoji).call(this, props));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SkinsEmoji, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n skin = _this$props.skin,\n emojiProps = _this$props.emojiProps,\n data = _this$props.data,\n skinEmoji = _this$props.skinEmoji,\n i18n = _this$props.i18n;\n var opened = this.state.opened;\n var skinToneNodes = [];\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n var selected = skinTone === skin;\n skinToneNodes.push(React.createElement(\"span\", {\n key: \"skin-tone-\".concat(skinTone),\n className: \"emoji-mart-skin-swatch custom\".concat(selected ? ' selected' : '')\n }, React.createElement(\"span\", {\n onClick: this.handleClick,\n \"data-skin\": skinTone,\n className: \"emoji-mart-skin-tone-\".concat(skinTone)\n }, NimbleEmoji({\n emoji: skinEmoji,\n data: data,\n skin: skinTone,\n backgroundImageFn: emojiProps.backgroundImageFn,\n \"native\": emojiProps[\"native\"],\n set: emojiProps.set,\n sheetSize: emojiProps.sheetSize,\n size: 23\n }))));\n }\n\n return React.createElement(\"div\", {\n className: \"emoji-mart-skin-swatches custom\".concat(opened ? ' opened' : '')\n }, React.createElement(\"div\", {\n className: \"emoji-mart-skin-text\".concat(opened ? ' opened' : '')\n }, i18n.skintext), skinToneNodes);\n }\n }]);\n\n return SkinsEmoji;\n}(Skins);\n\nexport { SkinsEmoji as default };\nSkinsEmoji.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired,\n emojiProps: PropTypes.object.isRequired,\n skinTone: PropTypes.number,\n skinEmoji: PropTypes.string.isRequired,\n i18n: PropTypes.object\n};\nSkinsEmoji.defaultProps = {\n onChange: function onChange() {},\n skinTone: null\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Skins from './skins';\n\nvar SkinsDot =\n/*#__PURE__*/\nfunction (_Skins) {\n _inherits(SkinsDot, _Skins);\n\n function SkinsDot(props) {\n var _this;\n\n _classCallCheck(this, SkinsDot);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SkinsDot).call(this, props));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SkinsDot, [{\n key: \"handleKeyDown\",\n value: function handleKeyDown(event) {\n // if either enter or space is pressed, then execute\n if (event.keyCode === 13 || event.keyCode === 32) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n skin = _this$props.skin,\n i18n = _this$props.i18n;\n var opened = this.state.opened;\n var skinToneNodes = [];\n\n for (var skinTone = 1; skinTone <= 6; skinTone++) {\n var selected = skinTone === skin;\n var visible = opened || selected;\n skinToneNodes.push(React.createElement(\"span\", _extends({\n key: \"skin-tone-\".concat(skinTone),\n className: \"emoji-mart-skin-swatch\".concat(selected ? ' selected' : ''),\n \"aria-label\": i18n.skintones[skinTone],\n \"aria-hidden\": !visible\n }, opened ? {\n role: 'menuitem'\n } : {}), React.createElement(\"span\", _extends({\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n role: \"button\"\n }, selected ? {\n 'aria-haspopup': true,\n 'aria-expanded': !!opened\n } : {}, opened ? {\n 'aria-pressed': !!selected\n } : {}, {\n tabIndex: visible ? '0' : '',\n \"aria-label\": i18n.skintones[skinTone],\n title: i18n.skintones[skinTone],\n \"data-skin\": skinTone,\n className: \"emoji-mart-skin emoji-mart-skin-tone-\".concat(skinTone)\n }))));\n }\n\n return React.createElement(\"section\", {\n className: \"emoji-mart-skin-swatches\".concat(opened ? ' opened' : ''),\n \"aria-label\": i18n.skintext\n }, React.createElement(\"div\", opened ? {\n role: 'menubar'\n } : {}, skinToneNodes));\n }\n }]);\n\n return SkinsDot;\n}(Skins);\n\nexport { SkinsDot as default };\nSkinsDot.propTypes\n/* remove-proptypes */\n= {\n onChange: PropTypes.func,\n skin: PropTypes.number.isRequired,\n i18n: PropTypes.object\n};\nSkinsDot.defaultProps = {\n onChange: function onChange() {}\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getData } from '../utils';\nimport NimbleEmoji from './emoji/nimble-emoji';\nimport SkinsEmoji from './skins-emoji';\nimport SkinsDot from './skins-dot';\n\nvar Preview =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Preview, _React$PureComponent);\n\n function Preview(props) {\n var _this;\n\n _classCallCheck(this, Preview);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Preview).call(this, props));\n _this.data = props.data;\n _this.state = {\n emoji: null\n };\n return _this;\n }\n\n _createClass(Preview, [{\n key: \"render\",\n value: function render() {\n var emoji = this.state.emoji,\n _this$props = this.props,\n emojiProps = _this$props.emojiProps,\n skinsProps = _this$props.skinsProps,\n showSkinTones = _this$props.showSkinTones,\n title = _this$props.title,\n idleEmoji = _this$props.emoji,\n i18n = _this$props.i18n,\n showPreview = _this$props.showPreview;\n\n if (emoji && showPreview) {\n var emojiData = getData(emoji, null, null, this.data),\n _emojiData$emoticons = emojiData.emoticons,\n emoticons = _emojiData$emoticons === void 0 ? [] : _emojiData$emoticons,\n knownEmoticons = [],\n listedEmoticons = [];\n emoticons.forEach(function (emoticon) {\n if (knownEmoticons.indexOf(emoticon.toLowerCase()) >= 0) {\n return;\n }\n\n knownEmoticons.push(emoticon.toLowerCase());\n listedEmoticons.push(emoticon);\n });\n return React.createElement(\"div\", {\n className: \"emoji-mart-preview\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoji\",\n \"aria-hidden\": \"true\"\n }, NimbleEmoji(_objectSpread({\n key: emoji.id,\n emoji: emoji,\n data: this.data\n }, emojiProps))), React.createElement(\"div\", {\n className: \"emoji-mart-preview-data\",\n \"aria-hidden\": \"true\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-name\"\n }, emoji.name), React.createElement(\"div\", {\n className: \"emoji-mart-preview-shortnames\"\n }, emojiData.short_names.map(function (short_name) {\n return React.createElement(\"span\", {\n key: short_name,\n className: \"emoji-mart-preview-shortname\"\n }, \":\", short_name, \":\");\n })), React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoticons\"\n }, listedEmoticons.map(function (emoticon) {\n return React.createElement(\"span\", {\n key: emoticon,\n className: \"emoji-mart-preview-emoticon\"\n }, emoticon);\n }))));\n } else {\n return React.createElement(\"div\", {\n className: \"emoji-mart-preview\"\n }, React.createElement(\"div\", {\n className: \"emoji-mart-preview-emoji\",\n \"aria-hidden\": \"true\"\n }, idleEmoji && idleEmoji.length && NimbleEmoji(_objectSpread({\n emoji: idleEmoji,\n data: this.data\n }, emojiProps))), React.createElement(\"div\", {\n className: \"emoji-mart-preview-data\",\n \"aria-hidden\": \"true\"\n }, React.createElement(\"span\", {\n className: \"emoji-mart-title-label\"\n }, title)), showSkinTones && React.createElement(\"div\", {\n className: \"emoji-mart-preview-skins\".concat(skinsProps.skinEmoji ? ' custom' : '')\n }, skinsProps.skinEmoji ? React.createElement(SkinsEmoji, {\n skin: skinsProps.skin,\n emojiProps: emojiProps,\n data: this.data,\n skinEmoji: skinsProps.skinEmoji,\n i18n: i18n,\n onChange: skinsProps.onChange\n }) : React.createElement(SkinsDot, {\n skin: skinsProps.skin,\n i18n: i18n,\n onChange: skinsProps.onChange\n })));\n }\n }\n }]);\n\n return Preview;\n}(React.PureComponent);\n\nexport { Preview as default };\nPreview.propTypes\n/* remove-proptypes */\n= {\n showSkinTones: PropTypes.bool,\n title: PropTypes.string.isRequired,\n emoji: PropTypes.string.isRequired,\n emojiProps: PropTypes.object.isRequired,\n skinsProps: PropTypes.object.isRequired\n};\nPreview.defaultProps = {\n showSkinTones: true,\n onChange: function onChange() {}\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { search as icons } from '../svgs';\nimport NimbleEmojiIndex from '../utils/emoji-index/nimble-emoji-index';\nimport { throttleIdleTask } from '../utils/index';\nvar id = 0;\n\nvar Search =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Search, _React$PureComponent);\n\n function Search(props) {\n var _this;\n\n _classCallCheck(this, Search);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Search).call(this, props));\n _this.state = {\n icon: icons.search,\n isSearching: false,\n id: ++id\n };\n _this.data = props.data;\n _this.emojiIndex = new NimbleEmojiIndex(_this.data);\n _this.setRef = _this.setRef.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.handleKeyUp = _this.handleKeyUp.bind(_assertThisInitialized(_this)); // throttle keyboard input so that typing isn't delayed\n\n _this.handleChange = throttleIdleTask(_this.handleChange.bind(_assertThisInitialized(_this)));\n return _this;\n }\n\n _createClass(Search, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // in some cases (e.g. preact) the input may already be pre-populated\n // this.input is undefined in Jest tests\n if (this.input && this.input.value) {\n this.search(this.input.value);\n }\n }\n }, {\n key: \"search\",\n value: function search(value) {\n if (value == '') this.setState({\n icon: icons.search,\n isSearching: false\n });else this.setState({\n icon: icons[\"delete\"],\n isSearching: true\n });\n this.props.onSearch(this.emojiIndex.search(value, {\n emojisToShowFilter: this.props.emojisToShowFilter,\n maxResults: this.props.maxResults,\n include: this.props.include,\n exclude: this.props.exclude,\n custom: this.props.custom\n }));\n }\n }, {\n key: \"clear\",\n value: function clear() {\n if (this.input.value == '') return;\n this.input.value = '';\n this.input.focus();\n this.search('');\n }\n }, {\n key: \"handleChange\",\n value: function handleChange() {\n if (this.input) {\n this.search(this.input.value);\n }\n }\n }, {\n key: \"handleKeyUp\",\n value: function handleKeyUp(e) {\n if (e.keyCode === 13) {\n this.clear();\n }\n }\n }, {\n key: \"setRef\",\n value: function setRef(c) {\n this.input = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n i18n = _this$props.i18n,\n autoFocus = _this$props.autoFocus;\n var _this$state = this.state,\n icon = _this$state.icon,\n isSearching = _this$state.isSearching,\n id = _this$state.id;\n var inputId = \"emoji-mart-search-\".concat(id);\n return React.createElement(\"section\", {\n className: \"emoji-mart-search\",\n \"aria-label\": i18n.search\n }, React.createElement(\"input\", {\n id: inputId,\n ref: this.setRef,\n type: \"search\",\n onChange: this.handleChange,\n placeholder: i18n.search,\n autoFocus: autoFocus\n }), React.createElement(\"label\", {\n className: \"emoji-mart-sr-only\",\n htmlFor: inputId\n }, i18n.search), React.createElement(\"button\", {\n className: \"emoji-mart-search-icon\",\n onClick: this.clear,\n onKeyUp: this.handleKeyUp,\n \"aria-label\": i18n.clear,\n disabled: !isSearching\n }, icon()));\n }\n }]);\n\n return Search;\n}(React.PureComponent);\n\nexport { Search as default };\nSearch.propTypes\n/* remove-proptypes */\n= {\n onSearch: PropTypes.func,\n maxResults: PropTypes.number,\n emojisToShowFilter: PropTypes.func,\n autoFocus: PropTypes.bool\n};\nSearch.defaultProps = {\n onSearch: function onSearch() {},\n maxResults: 75,\n emojisToShowFilter: null,\n autoFocus: false\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../svgs';\nimport store from '../../utils/store';\nimport frequently from '../../utils/frequently';\nimport { deepMerge, measureScrollbar, getSanitizedData } from '../../utils';\nimport { uncompress } from '../../utils/data';\nimport { PickerPropTypes } from '../../utils/shared-props';\nimport Anchors from '../anchors';\nimport Category from '../category';\nimport Preview from '../preview';\nimport Search from '../search';\nimport { PickerDefaultProps } from '../../utils/shared-default-props';\nvar I18N = {\n search: 'Search',\n clear: 'Clear',\n // Accessible label on \"clear\" button\n notfound: 'No Emoji Found',\n skintext: 'Choose your default skin tone',\n categories: {\n search: 'Search Results',\n recent: 'Frequently Used',\n people: 'Smileys & People',\n nature: 'Animals & Nature',\n foods: 'Food & Drink',\n activity: 'Activity',\n places: 'Travel & Places',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n custom: 'Custom'\n },\n categorieslabel: 'Emoji categories',\n // Accessible title for the list of categories\n skintones: {\n 1: 'Default Skin Tone',\n 2: 'Light Skin Tone',\n 3: 'Medium-Light Skin Tone',\n 4: 'Medium Skin Tone',\n 5: 'Medium-Dark Skin Tone',\n 6: 'Dark Skin Tone'\n }\n};\n\nvar NimblePicker =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(NimblePicker, _React$PureComponent);\n\n function NimblePicker(props) {\n var _this;\n\n _classCallCheck(this, NimblePicker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NimblePicker).call(this, props));\n _this.CUSTOM = [];\n _this.RECENT_CATEGORY = {\n id: 'recent',\n name: 'Recent',\n emojis: null\n };\n _this.SEARCH_CATEGORY = {\n id: 'search',\n name: 'Search',\n emojis: null,\n anchor: false\n };\n\n if (props.data.compressed) {\n uncompress(props.data);\n }\n\n _this.data = props.data;\n _this.i18n = deepMerge(I18N, props.i18n);\n _this.icons = deepMerge(icons, props.icons);\n _this.state = {\n firstRender: true\n };\n _this.categories = [];\n var allCategories = [].concat(_this.data.categories);\n\n if (props.custom.length > 0) {\n var customCategories = {};\n var customCategoriesCreated = 0;\n props.custom.forEach(function (emoji) {\n if (!customCategories[emoji.customCategory]) {\n customCategories[emoji.customCategory] = {\n id: emoji.customCategory ? \"custom-\".concat(emoji.customCategory) : 'custom',\n name: emoji.customCategory || 'Custom',\n emojis: [],\n anchor: customCategoriesCreated === 0\n };\n customCategoriesCreated++;\n }\n\n var category = customCategories[emoji.customCategory];\n\n var customEmoji = _objectSpread({}, emoji, {\n // `` expects emoji to have an `id`.\n id: emoji.short_names[0],\n custom: true\n });\n\n category.emojis.push(customEmoji);\n\n _this.CUSTOM.push(customEmoji);\n });\n allCategories = allCategories.concat(Object.keys(customCategories).map(function (key) {\n return customCategories[key];\n }));\n }\n\n _this.hideRecent = true;\n\n if (props.include != undefined) {\n allCategories.sort(function (a, b) {\n if (props.include.indexOf(a.id) > props.include.indexOf(b.id)) {\n return 1;\n }\n\n return -1;\n });\n }\n\n for (var categoryIndex = 0; categoryIndex < allCategories.length; categoryIndex++) {\n var category = allCategories[categoryIndex];\n var isIncluded = props.include && props.include.length ? props.include.indexOf(category.id) > -1 : true;\n var isExcluded = props.exclude && props.exclude.length ? props.exclude.indexOf(category.id) > -1 : false;\n\n if (!isIncluded || isExcluded) {\n continue;\n }\n\n if (props.emojisToShowFilter) {\n var newEmojis = [];\n var emojis = category.emojis;\n\n for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex++) {\n var emoji = emojis[emojiIndex];\n\n if (props.emojisToShowFilter(_this.data.emojis[emoji] || emoji)) {\n newEmojis.push(emoji);\n }\n }\n\n if (newEmojis.length) {\n var newCategory = {\n emojis: newEmojis,\n name: category.name,\n id: category.id\n };\n\n _this.categories.push(newCategory);\n }\n } else {\n _this.categories.push(category);\n }\n }\n\n var includeRecent = props.include && props.include.length ? props.include.indexOf(_this.RECENT_CATEGORY.id) > -1 : true;\n var excludeRecent = props.exclude && props.exclude.length ? props.exclude.indexOf(_this.RECENT_CATEGORY.id) > -1 : false;\n\n if (includeRecent && !excludeRecent) {\n _this.hideRecent = false;\n\n _this.categories.unshift(_this.RECENT_CATEGORY);\n }\n\n if (_this.categories[0]) {\n _this.categories[0].first = true;\n }\n\n _this.categories.unshift(_this.SEARCH_CATEGORY);\n\n _this.setAnchorsRef = _this.setAnchorsRef.bind(_assertThisInitialized(_this));\n _this.handleAnchorClick = _this.handleAnchorClick.bind(_assertThisInitialized(_this));\n _this.setSearchRef = _this.setSearchRef.bind(_assertThisInitialized(_this));\n _this.handleSearch = _this.handleSearch.bind(_assertThisInitialized(_this));\n _this.setScrollRef = _this.setScrollRef.bind(_assertThisInitialized(_this));\n _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_this));\n _this.handleScrollPaint = _this.handleScrollPaint.bind(_assertThisInitialized(_this));\n _this.handleEmojiOver = _this.handleEmojiOver.bind(_assertThisInitialized(_this));\n _this.handleEmojiLeave = _this.handleEmojiLeave.bind(_assertThisInitialized(_this));\n _this.handleEmojiClick = _this.handleEmojiClick.bind(_assertThisInitialized(_this));\n _this.handleEmojiSelect = _this.handleEmojiSelect.bind(_assertThisInitialized(_this));\n _this.setPreviewRef = _this.setPreviewRef.bind(_assertThisInitialized(_this));\n _this.handleSkinChange = _this.handleSkinChange.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n _this.handleDarkMatchMediaChange = _this.handleDarkMatchMediaChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(NimblePicker, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (this.state.firstRender) {\n this.testStickyPosition();\n this.firstRenderTimeout = setTimeout(function () {\n _this2.setState({\n firstRender: false\n });\n }, 60);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateCategoriesSize();\n this.handleScroll();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.SEARCH_CATEGORY.emojis = null;\n clearTimeout(this.leaveTimeout);\n clearTimeout(this.firstRenderTimeout);\n\n if (this.darkMatchMedia) {\n this.darkMatchMedia.removeListener(this.handleDarkMatchMediaChange);\n }\n }\n }, {\n key: \"testStickyPosition\",\n value: function testStickyPosition() {\n var stickyTestElement = document.createElement('div');\n var prefixes = ['', '-webkit-', '-ms-', '-moz-', '-o-'];\n prefixes.forEach(function (prefix) {\n return stickyTestElement.style.position = \"\".concat(prefix, \"sticky\");\n });\n this.hasStickyPosition = !!stickyTestElement.style.position.length;\n }\n }, {\n key: \"getPreferredTheme\",\n value: function getPreferredTheme() {\n if (this.props.theme != 'auto') return this.props.theme;\n if (this.state.theme) return this.state.theme;\n if (typeof matchMedia !== 'function') return PickerDefaultProps.theme;\n\n if (!this.darkMatchMedia) {\n this.darkMatchMedia = matchMedia('(prefers-color-scheme: dark)');\n this.darkMatchMedia.addListener(this.handleDarkMatchMediaChange);\n }\n\n if (this.darkMatchMedia.media.match(/^not/)) return PickerDefaultProps.theme;\n return this.darkMatchMedia.matches ? 'dark' : 'light';\n }\n }, {\n key: \"handleDarkMatchMediaChange\",\n value: function handleDarkMatchMediaChange() {\n this.setState({\n theme: this.darkMatchMedia.matches ? 'dark' : 'light'\n });\n }\n }, {\n key: \"handleEmojiOver\",\n value: function handleEmojiOver(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n } // Use Array.prototype.find() when it is more widely supported.\n\n\n var emojiData = this.CUSTOM.filter(function (customEmoji) {\n return customEmoji.id === emoji.id;\n })[0];\n\n for (var key in emojiData) {\n if (emojiData.hasOwnProperty(key)) {\n emoji[key] = emojiData[key];\n }\n }\n\n preview.setState({\n emoji: emoji\n });\n clearTimeout(this.leaveTimeout);\n }\n }, {\n key: \"handleEmojiLeave\",\n value: function handleEmojiLeave(emoji) {\n var preview = this.preview;\n\n if (!preview) {\n return;\n }\n\n this.leaveTimeout = setTimeout(function () {\n preview.setState({\n emoji: null\n });\n }, 16);\n }\n }, {\n key: \"handleEmojiClick\",\n value: function handleEmojiClick(emoji, e) {\n this.props.onClick(emoji, e);\n this.handleEmojiSelect(emoji);\n }\n }, {\n key: \"handleEmojiSelect\",\n value: function handleEmojiSelect(emoji) {\n var _this3 = this;\n\n this.props.onSelect(emoji);\n if (!this.hideRecent && !this.props.recent) frequently.add(emoji);\n var component = this.categoryRefs['category-1'];\n\n if (component) {\n var maxMargin = component.maxMargin;\n\n if (this.props.enableFrequentEmojiSort) {\n component.forceUpdate();\n }\n\n requestAnimationFrame(function () {\n if (!_this3.scroll) return;\n component.memoizeSize();\n if (maxMargin == component.maxMargin) return;\n\n _this3.updateCategoriesSize();\n\n _this3.handleScrollPaint();\n\n if (_this3.SEARCH_CATEGORY.emojis) {\n component.updateDisplay('none');\n }\n });\n }\n }\n }, {\n key: \"handleScroll\",\n value: function handleScroll() {\n if (!this.waitingForPaint) {\n this.waitingForPaint = true;\n requestAnimationFrame(this.handleScrollPaint);\n }\n }\n }, {\n key: \"handleScrollPaint\",\n value: function handleScrollPaint() {\n this.waitingForPaint = false;\n\n if (!this.scroll) {\n return;\n }\n\n var activeCategory = null;\n\n if (this.SEARCH_CATEGORY.emojis) {\n activeCategory = this.SEARCH_CATEGORY;\n } else {\n var target = this.scroll,\n scrollTop = target.scrollTop,\n scrollingDown = scrollTop > (this.scrollTop || 0),\n minTop = 0;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var ii = scrollingDown ? this.categories.length - 1 - i : i,\n category = this.categories[ii],\n component = this.categoryRefs[\"category-\".concat(ii)];\n\n if (component) {\n var active = component.handleScroll(scrollTop);\n\n if (!minTop || component.top < minTop) {\n if (component.top > 0) {\n minTop = component.top;\n }\n }\n\n if (active && !activeCategory) {\n activeCategory = category;\n }\n }\n }\n\n if (scrollTop < minTop) {\n activeCategory = this.categories.filter(function (category) {\n return !(category.anchor === false);\n })[0];\n } else if (scrollTop + this.clientHeight >= this.scrollHeight) {\n activeCategory = this.categories[this.categories.length - 1];\n }\n }\n\n if (activeCategory) {\n var anchors = this.anchors,\n _activeCategory = activeCategory,\n categoryName = _activeCategory.name;\n\n if (anchors.state.selected != categoryName) {\n anchors.setState({\n selected: categoryName\n });\n }\n }\n\n this.scrollTop = scrollTop;\n }\n }, {\n key: \"handleSearch\",\n value: function handleSearch(emojis) {\n this.SEARCH_CATEGORY.emojis = emojis;\n\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs[\"category-\".concat(i)];\n\n if (component && component.props.name != 'Search') {\n var display = emojis ? 'none' : 'inherit';\n component.updateDisplay(display);\n }\n }\n\n this.forceUpdate();\n\n if (this.scroll) {\n this.scroll.scrollTop = 0;\n }\n\n this.handleScroll();\n }\n }, {\n key: \"handleAnchorClick\",\n value: function handleAnchorClick(category, i) {\n var component = this.categoryRefs[\"category-\".concat(i)],\n scroll = this.scroll,\n anchors = this.anchors,\n scrollToComponent = null;\n\n scrollToComponent = function scrollToComponent() {\n if (component) {\n var top = component.top;\n\n if (category.first) {\n top = 0;\n } else {\n top += 1;\n }\n\n scroll.scrollTop = top;\n }\n };\n\n if (this.SEARCH_CATEGORY.emojis) {\n this.handleSearch(null);\n this.search.clear();\n requestAnimationFrame(scrollToComponent);\n } else {\n scrollToComponent();\n }\n }\n }, {\n key: \"handleSkinChange\",\n value: function handleSkinChange(skin) {\n var newState = {\n skin: skin\n },\n onSkinChange = this.props.onSkinChange;\n this.setState(newState);\n store.update(newState);\n onSkinChange(skin);\n }\n }, {\n key: \"handleKeyDown\",\n value: function handleKeyDown(e) {\n var handled = false;\n\n switch (e.keyCode) {\n case 13:\n var emoji;\n\n if (this.SEARCH_CATEGORY.emojis && this.SEARCH_CATEGORY.emojis.length && (emoji = getSanitizedData(this.SEARCH_CATEGORY.emojis[0], this.state.skin, this.props.set, this.props.data))) {\n this.handleEmojiSelect(emoji);\n handled = true;\n }\n\n break;\n }\n\n if (handled) {\n e.preventDefault();\n }\n }\n }, {\n key: \"updateCategoriesSize\",\n value: function updateCategoriesSize() {\n for (var i = 0, l = this.categories.length; i < l; i++) {\n var component = this.categoryRefs[\"category-\".concat(i)];\n if (component) component.memoizeSize();\n }\n\n if (this.scroll) {\n var target = this.scroll;\n this.scrollHeight = target.scrollHeight;\n this.clientHeight = target.clientHeight;\n }\n }\n }, {\n key: \"getCategories\",\n value: function getCategories() {\n return this.state.firstRender ? this.categories.slice(0, 3) : this.categories;\n }\n }, {\n key: \"setAnchorsRef\",\n value: function setAnchorsRef(c) {\n this.anchors = c;\n }\n }, {\n key: \"setSearchRef\",\n value: function setSearchRef(c) {\n this.search = c;\n }\n }, {\n key: \"setPreviewRef\",\n value: function setPreviewRef(c) {\n this.preview = c;\n }\n }, {\n key: \"setScrollRef\",\n value: function setScrollRef(c) {\n this.scroll = c;\n }\n }, {\n key: \"setCategoryRef\",\n value: function setCategoryRef(name, c) {\n if (!this.categoryRefs) {\n this.categoryRefs = {};\n }\n\n this.categoryRefs[name] = c;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props = this.props,\n perLine = _this$props.perLine,\n emojiSize = _this$props.emojiSize,\n set = _this$props.set,\n sheetSize = _this$props.sheetSize,\n sheetColumns = _this$props.sheetColumns,\n sheetRows = _this$props.sheetRows,\n style = _this$props.style,\n title = _this$props.title,\n emoji = _this$props.emoji,\n color = _this$props.color,\n _native = _this$props[\"native\"],\n backgroundImageFn = _this$props.backgroundImageFn,\n emojisToShowFilter = _this$props.emojisToShowFilter,\n showPreview = _this$props.showPreview,\n showSkinTones = _this$props.showSkinTones,\n emojiTooltip = _this$props.emojiTooltip,\n useButton = _this$props.useButton,\n include = _this$props.include,\n exclude = _this$props.exclude,\n recent = _this$props.recent,\n autoFocus = _this$props.autoFocus,\n skinEmoji = _this$props.skinEmoji,\n notFound = _this$props.notFound,\n notFoundEmoji = _this$props.notFoundEmoji;\n var width = perLine * (emojiSize + 12) + 12 + 2 + measureScrollbar();\n var theme = this.getPreferredTheme();\n var skin = this.props.skin || this.state.skin || store.get('skin') || this.props.defaultSkin;\n return React.createElement(\"section\", {\n style: _objectSpread({\n width: width\n }, style),\n className: \"emoji-mart emoji-mart-\".concat(theme),\n \"aria-label\": title,\n onKeyDown: this.handleKeyDown\n }, React.createElement(\"div\", {\n className: \"emoji-mart-bar\"\n }, React.createElement(Anchors, {\n ref: this.setAnchorsRef,\n data: this.data,\n i18n: this.i18n,\n color: color,\n categories: this.categories,\n onAnchorClick: this.handleAnchorClick,\n icons: this.icons\n })), React.createElement(Search, {\n ref: this.setSearchRef,\n onSearch: this.handleSearch,\n data: this.data,\n i18n: this.i18n,\n emojisToShowFilter: emojisToShowFilter,\n include: include,\n exclude: exclude,\n custom: this.CUSTOM,\n autoFocus: autoFocus\n }), React.createElement(\"div\", {\n ref: this.setScrollRef,\n className: \"emoji-mart-scroll\",\n onScroll: this.handleScroll\n }, this.getCategories().map(function (category, i) {\n return React.createElement(Category, {\n ref: _this4.setCategoryRef.bind(_this4, \"category-\".concat(i)),\n key: category.name,\n id: category.id,\n name: category.name,\n emojis: category.emojis,\n perLine: perLine,\n \"native\": _native,\n hasStickyPosition: _this4.hasStickyPosition,\n data: _this4.data,\n i18n: _this4.i18n,\n recent: category.id == _this4.RECENT_CATEGORY.id ? recent : undefined,\n custom: category.id == _this4.RECENT_CATEGORY.id ? _this4.CUSTOM : undefined,\n emojiProps: {\n \"native\": _native,\n skin: skin,\n size: emojiSize,\n set: set,\n sheetSize: sheetSize,\n sheetColumns: sheetColumns,\n sheetRows: sheetRows,\n forceSize: _native,\n tooltip: emojiTooltip,\n backgroundImageFn: backgroundImageFn,\n useButton: useButton,\n onOver: _this4.handleEmojiOver,\n onLeave: _this4.handleEmojiLeave,\n onClick: _this4.handleEmojiClick\n },\n notFound: notFound,\n notFoundEmoji: notFoundEmoji\n });\n })), (showPreview || showSkinTones) && React.createElement(\"div\", {\n className: \"emoji-mart-bar\"\n }, React.createElement(Preview, {\n ref: this.setPreviewRef,\n data: this.data,\n title: title,\n emoji: emoji,\n showSkinTones: showSkinTones,\n showPreview: showPreview,\n emojiProps: {\n \"native\": _native,\n size: 38,\n skin: skin,\n set: set,\n sheetSize: sheetSize,\n sheetColumns: sheetColumns,\n sheetRows: sheetRows,\n backgroundImageFn: backgroundImageFn\n },\n skinsProps: {\n skin: skin,\n onChange: this.handleSkinChange,\n skinEmoji: skinEmoji\n },\n i18n: this.i18n\n })));\n }\n }]);\n\n return NimblePicker;\n}(React.PureComponent);\n\nexport { NimblePicker as default };\nNimblePicker.propTypes\n/* remove-proptypes */\n= _objectSpread({}, PickerPropTypes, {\n data: PropTypes.object.isRequired\n});\nNimblePicker.defaultProps = _objectSpread({}, PickerDefaultProps);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimblePicker from './nimble-picker';\nimport { PickerPropTypes } from '../../utils/shared-props';\nimport { PickerDefaultProps } from '../../utils/shared-default-props';\n\nvar Picker =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Picker, _React$PureComponent);\n\n function Picker() {\n _classCallCheck(this, Picker);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Picker).apply(this, arguments));\n }\n\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return React.createElement(NimblePicker, _extends({}, this.props, this.state));\n }\n }]);\n\n return Picker;\n}(React.PureComponent);\n\nexport { Picker as default };\nPicker.propTypes\n/* remove-proptypes */\n= PickerPropTypes;\nPicker.defaultProps = _objectSpread({}, PickerDefaultProps, {\n data: data\n});","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport data from '../../../data/all.json';\nimport NimbleEmoji from './nimble-emoji';\nimport { EmojiPropTypes } from '../../utils/shared-props';\nimport { EmojiDefaultProps } from '../../utils/shared-default-props';\n\nvar Emoji = function Emoji(props) {\n for (var k in Emoji.defaultProps) {\n if (props[k] == undefined && Emoji.defaultProps[k] != undefined) {\n props[k] = Emoji.defaultProps[k];\n }\n }\n\n return NimbleEmoji(_objectSpread({}, props));\n};\n\nEmoji.propTypes\n/* remove-proptypes */\n= EmojiPropTypes;\nEmoji.defaultProps = _objectSpread({}, EmojiDefaultProps, {\n data: data\n});\nexport default Emoji;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $BigInt = global.BigInt;\n\nmodule.exports = function hasNativeBigInts() {\n\treturn typeof $BigInt === 'function'\n\t\t&& typeof BigInt === 'function'\n\t\t&& typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers\n\t\t&& typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar hasBigInts = require('has-bigints')();\n\nif (hasBigInts) {\n\tvar bigIntValueOf = BigInt.prototype.valueOf;\n\tvar tryBigInt = function tryBigIntObject(value) {\n\t\ttry {\n\t\t\tbigIntValueOf.call(value);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\n\tmodule.exports = function isBigInt(value) {\n\t\tif (\n\t\t\tvalue === null\n\t\t\t|| typeof value === 'undefined'\n\t\t\t|| typeof value === 'boolean'\n\t\t\t|| typeof value === 'string'\n\t\t\t|| typeof value === 'number'\n\t\t\t|| typeof value === 'symbol'\n\t\t\t|| typeof value === 'function'\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn tryBigInt(value);\n\t};\n} else {\n\tmodule.exports = function isBigInt(value) {\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar $boolToStr = callBound('Boolean.prototype.toString');\nvar $toString = callBound('Object.prototype.toString');\n\nvar tryBooleanObject = function booleanBrandCheck(value) {\n\ttry {\n\t\t$boolToStr(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar boolClass = '[object Boolean]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isBoolean(value) {\n\tif (typeof value === 'boolean') {\n\t\treturn true;\n\t}\n\tif (value === null || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Map) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Map; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar numToStr = Number.prototype.toString;\nvar tryNumberObject = function tryNumberObject(value) {\n\ttry {\n\t\tnumToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar numClass = '[object Number]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isNumberObject(value) {\n\tif (typeof value === 'number') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Set) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Set; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;\nvar $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;\n\nvar exported;\n\nif (!$WeakMap) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $WeakMap ? $WeakMap.prototype.has : null;\nvar $setHas = $WeakSet ? $WeakSet.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isWeakMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x, $mapHas);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x, $setHas);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $WeakMap; // core-js workaround, pre-v3\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;\nvar $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;\n\nvar exported;\n\nif (!$WeakMap) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakSet(x) {\n\t\t// `WeakSet` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $WeakMap ? $WeakMap.prototype.has : null;\nvar $setHas = $WeakSet ? $WeakSet.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\tmodule.exports = function isWeakSet(x) {\n\t\t// `WeakSet` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isWeakSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x, $setHas);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x, $mapHas);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $WeakSet; // core-js workaround, pre-v3\n\t} catch (e) {}\n\treturn false;\n};\n","// Load in dependencies\nvar computedStyle = require('computed-style');\n\n/**\n * Calculate the `line-height` of a given node\n * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.\n * @returns {Number} `line-height` of the element in pixels\n */\nfunction lineHeight(node) {\n // Grab the line-height via style\n var lnHeightStr = computedStyle(node, 'line-height');\n var lnHeight = parseFloat(lnHeightStr, 10);\n\n // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')\n if (lnHeightStr === lnHeight + '') {\n // Save the old lineHeight style and update the em unit to the element\n var _lnHeightStyle = node.style.lineHeight;\n node.style.lineHeight = lnHeightStr + 'em';\n\n // Calculate the em based height\n lnHeightStr = computedStyle(node, 'line-height');\n lnHeight = parseFloat(lnHeightStr, 10);\n\n // Revert the lineHeight style\n if (_lnHeightStyle) {\n node.style.lineHeight = _lnHeightStyle;\n } else {\n delete node.style.lineHeight;\n }\n }\n\n // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)\n // DEV: `em` units are converted to `pt` in IE6\n // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length\n if (lnHeightStr.indexOf('pt') !== -1) {\n lnHeight *= 4;\n lnHeight /= 3;\n // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)\n } else if (lnHeightStr.indexOf('mm') !== -1) {\n lnHeight *= 96;\n lnHeight /= 25.4;\n // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)\n } else if (lnHeightStr.indexOf('cm') !== -1) {\n lnHeight *= 96;\n lnHeight /= 2.54;\n // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)\n } else if (lnHeightStr.indexOf('in') !== -1) {\n lnHeight *= 96;\n // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)\n } else if (lnHeightStr.indexOf('pc') !== -1) {\n lnHeight *= 16;\n }\n\n // Continue our computation\n lnHeight = Math.round(lnHeight);\n\n // If the line-height is \"normal\", calculate by font-size\n if (lnHeightStr === 'normal') {\n // Create a temporary node\n var nodeName = node.nodeName;\n var _node = document.createElement(nodeName);\n _node.innerHTML = ' ';\n\n // If we have a text area, reset it to only 1 row\n // https://github.com/twolfson/line-height/issues/4\n if (nodeName.toUpperCase() === 'TEXTAREA') {\n _node.setAttribute('rows', '1');\n }\n\n // Set the font-size of the element\n var fontSizeStr = computedStyle(node, 'font-size');\n _node.style.fontSize = fontSizeStr;\n\n // Remove default padding/border which can affect offset height\n // https://github.com/twolfson/line-height/issues/4\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n _node.style.padding = '0px';\n _node.style.border = '0px';\n\n // Append it to the body\n var body = document.body;\n body.appendChild(_node);\n\n // Assume the line height of the element is the height\n var height = _node.offsetHeight;\n lnHeight = height;\n\n // Remove our child from the DOM\n body.removeChild(_node);\n }\n\n // Return the calculated height\n return lnHeight;\n}\n\n// Export lineHeight\nmodule.exports = lineHeight;\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,4}[a-zA-Z0-9%/]|' + // github has ... in commit range links,\n // google has .... in links (issue #66)\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n '\\\\,(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!(?!' + re.src_ZCc + '|[!]).|' +\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if ('cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms, value, key;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tsyms = getSymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tkey = syms[i];\n\t\t\t\tif ($propIsEnumerable(source, key)) {\n\t\t\t\t\t$push(props, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tkey = props[i];\n\t\t\tvalue = source[key];\n\t\t\tif ($propIsEnumerable(source, key)) {\n\t\t\t\tobjTarget[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind.apply(getPolyfill());\n// eslint-disable-next-line no-unused-vars\nvar bound = function assign(target, source1) {\n\treturn polyfill(Object, arguments);\n};\n\ndefineProperties(bound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = bound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nexports.__esModule = true;\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar autosize = require(\"autosize\");\nvar _getLineHeight = require(\"line-height\");\nvar getLineHeight = _getLineHeight;\nvar RESIZED = \"autosize:resized\";\n/**\n * A light replacement for built-in textarea component\n * which automaticaly adjusts its height to match the content\n */\nvar TextareaAutosizeClass = /** @class */ (function (_super) {\n __extends(TextareaAutosizeClass, _super);\n function TextareaAutosizeClass() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n lineHeight: null\n };\n _this.textarea = null;\n _this.onResize = function (e) {\n if (_this.props.onResize) {\n _this.props.onResize(e);\n }\n };\n _this.updateLineHeight = function () {\n if (_this.textarea) {\n _this.setState({\n lineHeight: getLineHeight(_this.textarea)\n });\n }\n };\n _this.onChange = function (e) {\n var onChange = _this.props.onChange;\n _this.currentValue = e.currentTarget.value;\n onChange && onChange(e);\n };\n return _this;\n }\n TextareaAutosizeClass.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, maxRows = _a.maxRows, async = _a.async;\n if (typeof maxRows === \"number\") {\n this.updateLineHeight();\n }\n if (typeof maxRows === \"number\" || async) {\n /*\n the defer is needed to:\n - force \"autosize\" to activate the scrollbar when this.props.maxRows is passed\n - support StyledComponents (see #71)\n */\n setTimeout(function () { return _this.textarea && autosize(_this.textarea); });\n }\n else {\n this.textarea && autosize(this.textarea);\n }\n if (this.textarea) {\n this.textarea.addEventListener(RESIZED, this.onResize);\n }\n };\n TextareaAutosizeClass.prototype.componentWillUnmount = function () {\n if (this.textarea) {\n this.textarea.removeEventListener(RESIZED, this.onResize);\n autosize.destroy(this.textarea);\n }\n };\n TextareaAutosizeClass.prototype.render = function () {\n var _this = this;\n var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, [\"onResize\", \"maxRows\", \"onChange\", \"style\", \"innerRef\", \"children\"]), lineHeight = _a.state.lineHeight;\n var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;\n return (React.createElement(\"textarea\", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) {\n _this.textarea = element;\n if (typeof _this.props.innerRef === 'function') {\n _this.props.innerRef(element);\n }\n else if (_this.props.innerRef) {\n _this.props.innerRef.current = element;\n }\n } }), children));\n };\n TextareaAutosizeClass.prototype.componentDidUpdate = function () {\n this.textarea && autosize.update(this.textarea);\n };\n TextareaAutosizeClass.defaultProps = {\n rows: 1,\n async: false\n };\n TextareaAutosizeClass.propTypes = {\n rows: PropTypes.number,\n maxRows: PropTypes.number,\n onResize: PropTypes.func,\n innerRef: PropTypes.any,\n async: PropTypes.bool\n };\n return TextareaAutosizeClass;\n}(React.Component));\nexports.TextareaAutosize = React.forwardRef(function (props, ref) {\n return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref }));\n});\n","\"use strict\";\nexports.__esModule = true;\nvar TextareaAutosize_1 = require(\"./TextareaAutosize\");\nexports[\"default\"] = TextareaAutosize_1.TextareaAutosize;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nvar _defaultComponentDecorator = require('../decorators/defaultComponentDecorator');\n\nvar _defaultComponentDecorator2 = _interopRequireDefault(_defaultComponentDecorator);\n\nvar _defaultHrefDecorator = require('../decorators/defaultHrefDecorator');\n\nvar _defaultHrefDecorator2 = _interopRequireDefault(_defaultHrefDecorator);\n\nvar _defaultMatchDecorator = require('../decorators/defaultMatchDecorator');\n\nvar _defaultMatchDecorator2 = _interopRequireDefault(_defaultMatchDecorator);\n\nvar _defaultTextDecorator = require('../decorators/defaultTextDecorator');\n\nvar _defaultTextDecorator2 = _interopRequireDefault(_defaultTextDecorator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Linkify = function (_React$Component) {\n _inherits(Linkify, _React$Component);\n\n function Linkify() {\n _classCallCheck(this, Linkify);\n\n return _possibleConstructorReturn(this, (Linkify.__proto__ || Object.getPrototypeOf(Linkify)).apply(this, arguments));\n }\n\n _createClass(Linkify, [{\n key: 'parseString',\n value: function parseString(string) {\n var _this2 = this;\n\n if (string === '') {\n return string;\n }\n\n var matches = this.props.matchDecorator(string);\n if (!matches) {\n return string;\n }\n\n var elements = [];\n var lastIndex = 0;\n matches.forEach(function (match, i) {\n // Push preceding text if there is any\n if (match.index > lastIndex) {\n elements.push(string.substring(lastIndex, match.index));\n }\n\n var decoratedHref = _this2.props.hrefDecorator(match.url);\n var decoratedText = _this2.props.textDecorator(match.text);\n var decoratedComponent = _this2.props.componentDecorator(decoratedHref, decoratedText, i);\n elements.push(decoratedComponent);\n\n lastIndex = match.lastIndex;\n });\n\n // Push remaining text if there is any\n if (string.length > lastIndex) {\n elements.push(string.substring(lastIndex));\n }\n\n return elements.length === 1 ? elements[0] : elements;\n }\n }, {\n key: 'parse',\n value: function parse(children) {\n var _this3 = this;\n\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof children === 'string') {\n return this.parseString(children);\n } else if (React.isValidElement(children) && children.type !== 'a' && children.type !== 'button') {\n return React.cloneElement(children, { key: key }, this.parse(children.props.children));\n } else if (Array.isArray(children)) {\n return children.map(function (child, i) {\n return _this3.parse(child, i);\n });\n }\n\n return children;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n React.Fragment,\n null,\n this.parse(this.props.children)\n );\n }\n }]);\n\n return Linkify;\n}(React.Component);\n\nLinkify.defaultProps = {\n componentDecorator: _defaultComponentDecorator2.default,\n hrefDecorator: _defaultHrefDecorator2.default,\n matchDecorator: _defaultMatchDecorator2.default,\n textDecorator: _defaultTextDecorator2.default\n};\nexports.default = Linkify;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nexports.default = function (decoratedHref, decoratedText, key) {\n return React.createElement(\n 'a',\n { href: decoratedHref, key: key },\n decoratedText\n );\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (href) {\n return href;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _linkifyIt = require('linkify-it');\n\nvar _linkifyIt2 = _interopRequireDefault(_linkifyIt);\n\nvar _tlds = require('tlds');\n\nvar _tlds2 = _interopRequireDefault(_tlds);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar linkify = new _linkifyIt2.default();\nlinkify.tlds(_tlds2.default);\n\nexports.default = function (text) {\n return linkify.match(text);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (text) {\n return text;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Linkify = require('./components/Linkify');\n\nvar _Linkify2 = _interopRequireDefault(_Linkify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Linkify2.default;","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","const codeblocks = (tree, options) => {\n options = options || {}\n\n const lang = options.lang || 'all'\n const name = options.name || 'codeblocks'\n const formatter = options.formatter || (v => v)\n\n const { children } = tree\n let data = {}\n let i = -1\n let child\n\n if (lang === 'all') {\n data[name] = {}\n } else {\n data[name] = []\n }\n\n while (++i < children.length) {\n child = children[i]\n\n if (child.type === 'code' && child.value) {\n if (lang === 'all') {\n child.lang = child.lang || '_'\n data[name][child.lang] = data[name][child.lang] || []\n data[name][child.lang].push(formatter(child.value))\n } else {\n if (child.lang === lang) {\n data[name].push(formatter(child.value))\n }\n }\n }\n }\n\n return data\n}\n\nmodule.exports = options => (tree, file) => {\n const data = codeblocks(tree, options)\n file.data = Object.assign({}, file.data, data)\n}\n\nmodule.exports.codeblocks = (tree, options) => codeblocks(tree, options)\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeighte||o>t&&l=e&&d>=n?o-t-r:l>e&&dn?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var targetIsDetached = !target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(targetIsDetached ? [] : compute(target, options));\n }\n\n if (targetIsDetached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","import scrollIntoView from 'scroll-into-view-if-needed';\nvar memoizedNow;\n\nvar now = function now() {\n if (!memoizedNow) {\n memoizedNow = 'performance' in window ? performance.now.bind(performance) : Date.now;\n }\n\n return memoizedNow();\n};\n\nfunction step(context) {\n var time = now();\n var elapsed = Math.min((time - context.startTime) / context.duration, 1);\n var value = context.ease(elapsed);\n var currentX = context.startX + (context.x - context.startX) * value;\n var currentY = context.startY + (context.y - context.startY) * value;\n context.method(currentX, currentY);\n\n if (currentX !== context.x || currentY !== context.y) {\n requestAnimationFrame(function () {\n return step(context);\n });\n } else {\n context.cb();\n }\n}\n\nfunction smoothScroll(el, x, y, duration, ease, cb) {\n if (duration === void 0) {\n duration = 600;\n }\n\n if (ease === void 0) {\n ease = function ease(t) {\n return 1 + --t * t * t * t * t;\n };\n }\n\n var scrollable;\n var startX;\n var startY;\n var method;\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n\n method = function method(x, y) {\n el.scrollLeft = Math.ceil(x);\n el.scrollTop = Math.ceil(y);\n };\n\n step({\n scrollable: scrollable,\n method: method,\n startTime: now(),\n startX: startX,\n startY: startY,\n x: x,\n y: y,\n duration: duration,\n ease: ease,\n cb: cb\n });\n}\n\nvar shouldSmoothScroll = function shouldSmoothScroll(options) {\n return options && !options.behavior || options.behavior === 'smooth';\n};\n\nfunction scroll(target, options) {\n var overrides = options || {};\n\n if (shouldSmoothScroll(overrides)) {\n return scrollIntoView(target, {\n block: overrides.block,\n inline: overrides.inline,\n scrollMode: overrides.scrollMode,\n boundary: overrides.boundary,\n behavior: function behavior(actions) {\n return Promise.all(actions.reduce(function (results, _ref) {\n var el = _ref.el,\n left = _ref.left,\n top = _ref.top;\n var startLeft = el.scrollLeft;\n var startTop = el.scrollTop;\n\n if (startLeft === left && startTop === top) {\n return results;\n }\n\n return [].concat(results, [new Promise(function (resolve) {\n return smoothScroll(el, left, top, overrides.duration, overrides.ease, function () {\n return resolve({\n el: el,\n left: [startLeft, left],\n top: [startTop, top]\n });\n });\n })]);\n }, []));\n }\n });\n }\n\n return Promise.resolve(scrollIntoView(target, options));\n}\n\nvar smoothScrollIntoView = scroll;\nexport default smoothScrollIntoView;","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","'use strict';\n\nvar isString = require('is-string');\nvar isNumber = require('is-number-object');\nvar isBoolean = require('is-boolean-object');\nvar isSymbol = require('is-symbol');\nvar isBigInt = require('is-bigint');\n\n// eslint-disable-next-line consistent-return\nmodule.exports = function whichBoxedPrimitive(value) {\n\t// eslint-disable-next-line eqeqeq\n\tif (value == null || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\treturn null;\n\t}\n\tif (isString(value)) {\n\t\treturn 'String';\n\t}\n\tif (isNumber(value)) {\n\t\treturn 'Number';\n\t}\n\tif (isBoolean(value)) {\n\t\treturn 'Boolean';\n\t}\n\tif (isSymbol(value)) {\n\t\treturn 'Symbol';\n\t}\n\tif (isBigInt(value)) {\n\t\treturn 'BigInt';\n\t}\n};\n","'use strict';\n\nvar forEach = require('foreach');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar forEach = require('foreach');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\n/* eslint global-require: 0 */\n// the code is structured this way so that bundlers can\n// alias out `has-symbols` to `() => true` or `() => false` if your target\n// environments' Symbol capabilities are known, and then use\n// dead code elimination on the rest of this module.\n//\n// Similarly, `isarray` can be aliased to `Array.isArray` if\n// available in all target environments.\n\nvar isArguments = require('is-arguments');\n\nif (require('has-symbols')() || require('has-symbols/shams')()) {\n\tvar $iterator = Symbol.iterator;\n\t// Symbol is available natively or shammed\n\t// natively:\n\t// - Chrome >= 38\n\t// - Edge 12-14?, Edge >= 15 for sure\n\t// - FF >= 36\n\t// - Safari >= 9\n\t// - node >= 0.12\n\tmodule.exports = function getIterator(iterable) {\n\t\t// alternatively, `iterable[$iterator]?.()`\n\t\tif (iterable != null && typeof iterable[$iterator] !== 'undefined') {\n\t\t\treturn iterable[$iterator]();\n\t\t}\n\t\tif (isArguments(iterable)) {\n\t\t\t// arguments objects lack Symbol.iterator\n\t\t\t// - node 0.12\n\t\t\treturn Array.prototype[$iterator].call(iterable);\n\t\t}\n\t};\n} else {\n\t// Symbol is not available, native or shammed\n\tvar isArray = require('isarray');\n\tvar isString = require('is-string');\n\tvar GetIntrinsic = require('get-intrinsic');\n\tvar $Map = GetIntrinsic('%Map%', true);\n\tvar $Set = GetIntrinsic('%Set%', true);\n\tvar callBound = require('call-bind/callBound');\n\tvar $arrayPush = callBound('Array.prototype.push');\n\tvar $charCodeAt = callBound('String.prototype.charCodeAt');\n\tvar $stringSlice = callBound('String.prototype.slice');\n\n\tvar advanceStringIndex = function advanceStringIndex(S, index) {\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t};\n\n\tvar getArrayIterator = function getArrayIterator(arraylike) {\n\t\tvar i = 0;\n\t\treturn {\n\t\t\tnext: function next() {\n\t\t\t\tvar done = i >= arraylike.length;\n\t\t\t\tvar value;\n\t\t\t\tif (!done) {\n\t\t\t\t\tvalue = arraylike[i];\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: done,\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t};\n\n\tvar getNonCollectionIterator = function getNonCollectionIterator(iterable, noPrimordialCollections) {\n\t\tif (isArray(iterable) || isArguments(iterable)) {\n\t\t\treturn getArrayIterator(iterable);\n\t\t}\n\t\tif (isString(iterable)) {\n\t\t\tvar i = 0;\n\t\t\treturn {\n\t\t\t\tnext: function next() {\n\t\t\t\t\tvar nextIndex = advanceStringIndex(iterable, i);\n\t\t\t\t\tvar value = $stringSlice(iterable, i, nextIndex);\n\t\t\t\t\ti = nextIndex;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: nextIndex > iterable.length,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// es6-shim and es-shims' es-map use a string \"_es6-shim iterator_\" property on different iterables, such as MapIterator.\n\t\tif (noPrimordialCollections && typeof iterable['_es6-shim iterator_'] !== 'undefined') {\n\t\t\treturn iterable['_es6-shim iterator_']();\n\t\t}\n\t};\n\n\tif (!$Map && !$Set) {\n\t\t// the only language iterables are Array, String, arguments\n\t\t// - Safari <= 6.0\n\t\t// - Chrome < 38\n\t\t// - node < 0.12\n\t\t// - FF < 13\n\t\t// - IE < 11\n\t\t// - Edge < 11\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\tif (iterable != null) {\n\t\t\t\treturn getNonCollectionIterator(iterable, true);\n\t\t\t}\n\t\t};\n\t} else {\n\t\t// either Map or Set are available, but Symbol is not\n\t\t// - es6-shim on an ES5 browser\n\t\t// - Safari 6.2 (maybe 6.1?)\n\t\t// - FF v[13, 36)\n\t\t// - IE 11\n\t\t// - Edge 11\n\t\t// - Safari v[6, 9)\n\n\t\tvar isMap = require('is-map');\n\t\tvar isSet = require('is-set');\n\n\t\t// Firefox >= 27, IE 11, Safari 6.2 - 9, Edge 11, es6-shim in older envs, all have forEach\n\t\tvar $mapForEach = callBound('Map.prototype.forEach', true);\n\t\tvar $setForEach = callBound('Set.prototype.forEach', true);\n\t\tif (typeof process === 'undefined' || !process.versions || !process.versions.node) { // \"if is not node\"\n\n\t\t\t// Firefox 17 - 26 has `.iterator()`, whose iterator `.next()` either\n\t\t\t// returns a value, or throws a StopIteration object. These browsers\n\t\t\t// do not have any other mechanism for iteration.\n\t\t\tvar $mapIterator = callBound('Map.prototype.iterator', true);\n\t\t\tvar $setIterator = callBound('Set.prototype.iterator', true);\n\t\t\tvar getStopIterationIterator = function (iterator) {\n\t\t\t\tvar done = false;\n\t\t\t\treturn {\n\t\t\t\t\tnext: function next() {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdone: done,\n\t\t\t\t\t\t\t\tvalue: done ? undefined : iterator.next()\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdone: true,\n\t\t\t\t\t\t\t\tvalue: undefined\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\t\t// Firefox 27-35, and some older es6-shim versions, use a string \"@@iterator\" property\n\t\t// this returns a proper iterator object, so we should use it instead of forEach.\n\t\t// newer es6-shim versions use a string \"_es6-shim iterator_\" property.\n\t\tvar $mapAtAtIterator = callBound('Map.prototype.@@iterator', true) || callBound('Map.prototype._es6-shim iterator_', true);\n\t\tvar $setAtAtIterator = callBound('Set.prototype.@@iterator', true) || callBound('Set.prototype._es6-shim iterator_', true);\n\n\t\tvar getCollectionIterator = function getCollectionIterator(iterable) {\n\t\t\tif (isMap(iterable)) {\n\t\t\t\tif ($mapIterator) {\n\t\t\t\t\treturn getStopIterationIterator($mapIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($mapAtAtIterator) {\n\t\t\t\t\treturn $mapAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($mapForEach) {\n\t\t\t\t\tvar entries = [];\n\t\t\t\t\t$mapForEach(iterable, function (v, k) {\n\t\t\t\t\t\t$arrayPush(entries, [k, v]);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(entries);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isSet(iterable)) {\n\t\t\t\tif ($setIterator) {\n\t\t\t\t\treturn getStopIterationIterator($setIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($setAtAtIterator) {\n\t\t\t\t\treturn $setAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($setForEach) {\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$setForEach(iterable, function (v) {\n\t\t\t\t\t\t$arrayPush(values, v);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(values);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\treturn getCollectionIterator(iterable) || getNonCollectionIterator(iterable);\n\t\t};\n\t}\n}\n","'use strict';\n\nvar isMap = require('is-map');\nvar isSet = require('is-set');\nvar isWeakMap = require('is-weakmap');\nvar isWeakSet = require('is-weakset');\n\nmodule.exports = function whichCollection(value) {\n\tif (value && typeof value === 'object') {\n\t\tif (isMap(value)) {\n\t\t\treturn 'Map';\n\t\t}\n\t\tif (isSet(value)) {\n\t\t\treturn 'Set';\n\t\t}\n\t\tif (isWeakMap(value)) {\n\t\t\treturn 'WeakMap';\n\t\t}\n\t\tif (isWeakSet(value)) {\n\t\t\treturn 'WeakSet';\n\t\t}\n\t}\n\treturn false;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\n// Windows paths like `c:\\`\nconst WINDOWS_PATH_REGEX = /^[a-zA-Z]:\\\\/;\n\nexport default function isAbsoluteUrl(url) {\n\tif (typeof url !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof url}\\``);\n\t}\n\n\tif (WINDOWS_PATH_REGEX.test(url)) {\n\t\treturn false;\n\t}\n\n\treturn ABSOLUTE_URL_REGEX.test(url);\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element['children'][number]} ElementChild\n *\n * @typedef Options\n * Configuration.\n * @property {'_self'|'_blank'|'_parent'|'_top'|false} [target='_blank']\n * How to display referenced documents (`string?`: `_self`, `_blank`,\n * `_parent`, or `_top`, default: `_blank`).\n * Pass `false` to not set `target`s on links.\n * @property {string[]|string|false} [rel=['nofollow', 'noopener', 'noreferrer']]\n * Link types to hint about the referenced documents.\n * Pass `false` to not set `rel`s on links.\n *\n * **Note**: when using a `target`, add `noopener` and `noreferrer` to avoid\n * exploitation of the `window.opener` API.\n * @property {string[]} [protocols=['http', 'https']]\n * Protocols to check, such as `mailto` or `tel`.\n * @property {ElementChild|ElementChild[]} [content]\n * hast content to insert at the end of external links.\n * Will be inserted in a `` element.\n *\n * Useful for improving accessibility by giving users advanced warning when\n * opening a new window.\n * @property {Properties} [contentProperties]\n * hast properties to add to the `span` wrapping `content`, when given.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {parse} from 'space-separated-tokens'\nimport absolute from 'is-absolute-url'\nimport extend from 'extend'\n\nconst defaultTarget = '_blank'\nconst defaultRel = ['nofollow', 'noopener', 'noreferrer']\nconst defaultProtocols = ['http', 'https']\n\n/**\n * Plugin to automatically add `target` and `rel` attributes to external links.\n *\n * @type {import('unified').Plugin<[Options?] | void[], Root>}\n */\nexport default function rehypeExternalLinks(options = {}) {\n const target = options.target\n const rel = typeof options.rel === 'string' ? parse(options.rel) : options.rel\n const protocols = options.protocols || defaultProtocols\n const content =\n options.content && !Array.isArray(options.content)\n ? [options.content]\n : options.content\n const contentProperties = options.contentProperties || {}\n\n return (tree) => {\n visit(tree, 'element', (node) => {\n if (\n node.tagName === 'a' &&\n node.properties &&\n typeof node.properties.href === 'string'\n ) {\n const url = node.properties.href\n const protocol = url.slice(0, url.indexOf(':'))\n\n if (absolute(url) && protocols.includes(protocol)) {\n if (target !== false) {\n node.properties.target = target || defaultTarget\n }\n\n if (rel !== false) {\n node.properties.rel = (rel || defaultRel).concat()\n }\n\n if (content) {\n node.children.push({\n type: 'element',\n tagName: 'span',\n properties: extend(true, contentProperties),\n children: extend(true, content)\n })\n }\n }\n }\n })\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst find = /[\\t ]*(?:\\r?\\n|\\r)/g\n\n/**\n * Plugin to add hard line break support (without needing spaces or escapes).\n *\n * @type {import('unified').Plugin}\n */\nexport default function remarkBreaks() {\n return (tree) => {\n visit(tree, 'text', (node, index, parent) => {\n /** @type {PhrasingContent[]} */\n const result = []\n let start = 0\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n\n if (start !== position) {\n result.push({type: 'text', value: node.value.slice(start, position)})\n }\n\n result.push({type: 'break'})\n start = position + match[0].length\n match = find.exec(node.value)\n }\n\n if (result.length > 0 && parent && typeof index === 'number') {\n if (start < node.value.length) {\n result.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...result)\n return index + result.length\n }\n })\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n asciiDigit,\n markdownLineEndingOrSpace,\n markdownLineEnding,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n tokenize: tokenizeWww,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst punctuation = {\n tokenize: tokenizePunctuation,\n partial: true\n}\nconst namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst httpAutolink = {\n tokenize: tokenizeHttpAutolink,\n previous: previousHttp\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean} */\n\n let hasDot\n /** @type {boolean|undefined} */\n\n let hasDigitInLastSegment\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n /** @type {State} */\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (code === 45 || code === 95) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n if (!hasDigitInLastSegment && asciiDigit(code)) {\n hasDigitInLastSegment = true\n }\n\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n /** @type {State} */\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n hasDigitInLastSegment = undefined\n return label\n }\n /** @type {State} */\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n /** @type {State} */\n\n function afterDashOrUnderscore(code) {\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (hasDot && !hasDigitInLastSegment) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but that’s not how it’s implemented by them).\n\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 72 && code !== 104) ||\n !previousHttp(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n /** @type {State} */\n\n function t1(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function t2(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function p(code) {\n if (code === 80 || code === 112) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function s(code) {\n if (code === 83 || code === 115) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n /** @type {State} */\n\n function colon(code) {\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash1(code) {\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash2(code) {\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return w2\n }\n /** @type {State} */\n\n function w2(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function w3(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function dot(code) {\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean|undefined} */\n let hasUnderscoreInLastSegment\n /** @type {boolean|undefined} */\n\n let hasUnderscoreInLastLastSegment\n return domain\n /** @type {State} */\n\n function domain(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 || code === 95) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n\n if (\n code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function punctuationContinuation(code) {\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n if (code === 95) hasUnderscoreInLastSegment = true\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n let balance = 0\n return inPath\n /** @type {State} */\n\n function inPath(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n if (code === 40) {\n balance++\n }\n\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n // If the named character reference is followed by the end of the path, it’s\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return after\n }\n /** @type {State} */\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n } // If the punctuation marker is followed by the end of the path, it’s not\n // continued punctuation.\n\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n return (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 95 ||\n code === 126\n )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Event[]} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n\n while (index--) {\n const token = events[index][1]\n\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n } // @ts-expect-error If we’ve seen this token, and it was marked as not\n // having any unbalanced bracket before it, we can exit.\n\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n\n if (events.length > 0 && !result) {\n // @ts-expect-error Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n\n return result\n}\n","const characterReferences = {'\"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}\n\n/**\n * Encode only the dangerous HTML characters.\n *\n * This ensures that certain characters which have special meaning in HTML are\n * dealt with.\n * Technically, we can skip `>` and `\"` in many cases, but CM includes them.\n *\n * @param {string} value\n * @returns {string}\n */\nexport function encode(value) {\n return value.replace(/[\"&<>]/g, replace)\n\n /**\n * @param {string} value\n * @returns {string}\n */\n function replace(value) {\n // @ts-expect-error Hush, it’s fine.\n return '&' + characterReferences[value] + ';'\n }\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nfunction normalizeUri(value) {\n /** @type {string[]} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').Handle} Handle\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n * @typedef {import('micromark-util-types').Token} Token\n */\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\n/** @type {HtmlExtension} */\n\nexport const gfmAutolinkLiteralHtml = {\n exit: {\n literalAutolinkEmail,\n literalAutolinkHttp,\n literalAutolinkWww\n }\n}\n/** @type {Handle} */\n\nfunction literalAutolinkWww(token) {\n anchorFromToken.call(this, token, 'http://')\n}\n/** @type {Handle} */\n\nfunction literalAutolinkEmail(token) {\n anchorFromToken.call(this, token, 'mailto:')\n}\n/** @type {Handle} */\n\nfunction literalAutolinkHttp(token) {\n anchorFromToken.call(this, token)\n}\n/**\n * @this CompileContext\n * @param {Token} token\n * @param {string} [protocol]\n * @returns {void}\n */\n\nfunction anchorFromToken(token, protocol) {\n const url = this.sliceSerialize(token)\n this.tag('')\n this.raw(this.encode(url))\n this.tag('')\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (`boolean`, default:\n * `true`).\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n let single = options.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n\n function resolveAllStrikethrough(events, context) {\n let index = -1\n /** @type {Token} */\n\n let strikethrough\n /** @type {Token} */\n\n let text\n /** @type {number} */\n\n let open\n /** @type {Event[]} */\n\n let nextEvents // Walk through all events.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n } // Opening.\n\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ] // Between.\n\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n /** @type {Tokenizer} */\n\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n code !== 126 ||\n (previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape')\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n /** @type {State} */\n\n function more(code) {\n const before = classifyCharacter(previous)\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\n/** @type {HtmlExtension} */\nexport const gfmStrikethroughHtml = {\n enter: {\n strikethrough() {\n this.tag('')\n }\n },\n exit: {\n strikethrough() {\n this.tag('')\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|null} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolve: resolveTable\n }\n }\n}\nconst setextUnderlineMini = {\n tokenize: tokenizeSetextUnderlineMini,\n partial: true\n}\nconst nextPrefixedOrBlank = {\n tokenize: tokenizeNextPrefixedOrBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n /** @type {Token} */\n\n let token\n /** @type {boolean|undefined} */\n\n let inHead\n /** @type {boolean|undefined} */\n\n let inDelimiterRow\n /** @type {boolean|undefined} */\n\n let inRow\n /** @type {Token} */\n\n let cell\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text\n /** @type {number|undefined} */\n\n let contentStart\n /** @type {number|undefined} */\n\n let contentEnd\n /** @type {number|undefined} */\n\n let cellStart\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n content = {\n type: 'tableContent',\n // @ts-expect-error `contentStart` is defined if `contentEnd` is too.\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n // @ts-expect-error It’s fine.\n contentType: 'text'\n }\n events.splice(\n // @ts-expect-error `contentStart` is defined if `contentEnd` is too.\n contentStart, // @ts-expect-error `contentStart` is defined if `contentEnd` is too.\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ) // @ts-expect-error `contentStart` is defined if `contentEnd` is too.\n\n index -= contentEnd - contentStart - 3\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart &&\n cellStart + 1 < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n cellStart = index + 1\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n /** @type {Align[]} */\n\n const align = []\n let tableHeaderCount = 0\n /** @type {boolean|undefined} */\n\n let seenDelimiter\n /** @type {boolean|undefined} */\n\n let hasDash\n return start\n /** @type {State} */\n\n function start(code) {\n // @ts-expect-error Custom.\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function cellDividerHead(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n /** @type {State} */\n\n function cellBreakHead(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndHead(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n if (code === 124) {\n return cellDividerHead(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function inWhitespaceHead(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n /** @type {State} */\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n /** @type {State} */\n\n function inCellContentEscapeHead(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n } // Anything else.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n return effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n atDelimiterLineStart,\n nok\n )(code)\n }\n /** @type {State} */\n\n function atDelimiterLineStart(code) {\n // To do: is the lazy setext thing still needed?\n return effects.check(\n setextUnderlineMini,\n nok, // Support an indent before the delimiter row.\n factorySpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )(code)\n }\n /** @type {State} */\n\n function rowStartDelimiter(code) {\n // If there’s another space, or we’re at the EOL/EOF, exit.\n if (code === null || markdownLineEndingOrSpace(code)) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function atDelimiterRowBreak(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push(null)\n return inFillerDelimiter\n }\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n } // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inWhitespaceDelimiter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function inFillerDelimiter(code) {\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function afterLeftAlignment(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n } // Anything else is not ok.\n\n return nok(code)\n }\n /** @type {State} */\n\n function afterRightAlignment(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n } // `|`\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, bodyStart, 'linePrefix', 4),\n tableClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n /** @type {State} */\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n /** @type {State} */\n\n function rowStartBody(code) {\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function cellDividerBody(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n /** @type {State} */\n\n function cellBreakBody(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndBody(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n } // `|`\n\n if (code === 124) {\n return cellDividerBody(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function inWhitespaceBody(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n /** @type {State} */\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n /** @type {State} */\n\n function inCellContentEscapeBody(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n } // Anything else.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, rowStartBody, 'linePrefix', 4),\n tableBodyClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeRowEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n} // Based on micromark, but that won’t work as we’re in a table, and that expects\n// content.\n// \n\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n /** @type {State} */\n\n function whitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return whitespace\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n // This is a check, so we don’t care about tokens, but we open a bogus one\n // so we’re valid.\n effects.enter('check') // EOL.\n\n effects.consume(code)\n return whitespace\n }\n /** @type {State} */\n\n function whitespace(code) {\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n } // EOF or whitespace\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n return ok(code)\n } // Anything else.\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\n/**\n * @typedef {import('./syntax.js').Align} Align\n */\nconst alignment = {\n null: '',\n left: ' align=\"left\"',\n right: ' align=\"right\"',\n center: ' align=\"center\"'\n}\n/** @type {HtmlExtension} */\n\nexport const gfmTableHtml = {\n enter: {\n table(token) {\n this.lineEndingIfNeeded()\n this.tag('') // @ts-expect-error Custom.\n\n this.setData('tableAlign', token._align)\n },\n\n tableBody() {\n // Clear slurping line ending from the delimiter row.\n this.setData('slurpOneLineEnding')\n this.tag('')\n },\n\n tableData() {\n /** @type {string|undefined} */\n const align = // @ts-expect-error Custom.\n alignment[this.getData('tableAlign')[this.getData('tableColumn')]]\n\n if (align === undefined) {\n // Capture results to ignore them.\n this.buffer()\n } else {\n this.lineEndingIfNeeded()\n this.tag('')\n }\n },\n\n tableHead() {\n this.lineEndingIfNeeded()\n this.tag('')\n },\n\n tableHeader() {\n this.lineEndingIfNeeded()\n this.tag(\n ''\n )\n },\n\n tableRow() {\n this.setData('tableColumn', 0)\n this.lineEndingIfNeeded()\n this.tag('')\n }\n },\n exit: {\n // Overwrite the default code text data handler to unescape escaped pipes when\n // they are in tables.\n codeTextData(token) {\n let value = this.sliceSerialize(token)\n\n if (this.getData('tableAlign')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n this.raw(this.encode(value))\n },\n\n table() {\n this.setData('tableAlign') // If there was no table body, make sure the slurping from the delimiter row\n // is cleared.\n\n this.setData('slurpAllLineEndings')\n this.lineEndingIfNeeded()\n this.tag('
')\n },\n\n tableBody() {\n this.lineEndingIfNeeded()\n this.tag('')\n },\n\n tableData() {\n /** @type {number} */\n // @ts-expect-error Custom.\n const column = this.getData('tableColumn') // @ts-expect-error Custom.\n\n if (column in this.getData('tableAlign')) {\n this.tag('')\n this.setData('tableColumn', column + 1)\n } else {\n // Stop capturing.\n this.resume()\n }\n },\n\n tableHead() {\n this.lineEndingIfNeeded()\n this.tag('')\n this.setData('slurpOneLineEnding', true) // Slurp the line ending from the delimiter row.\n },\n\n tableHeader() {\n this.tag('') // @ts-expect-error Custom.\n\n this.setData('tableColumn', this.getData('tableColumn') + 1)\n },\n\n tableRow() {\n /** @type {Align[]} */\n // @ts-expect-error Custom.\n const align = this.getData('tableAlign')\n /** @type {number} */\n // @ts-expect-error Custom.\n\n let column = this.getData('tableColumn')\n\n while (column < align.length) {\n this.lineEndingIfNeeded() // @ts-expect-error `null` is fine as an index.\n\n this.tag('')\n column++\n }\n\n this.setData('tableColumn', column)\n this.lineEndingIfNeeded()\n this.tag('')\n }\n }\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\n\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n","/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').CompileContext} CompileContext\n */\n\n/**\n * An opening or closing tag, followed by a case-insensitive specific tag name,\n * followed by HTML whitespace, a greater than, or a slash.\n */\nconst reFlow =\n /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\\t\\n\\f\\r />])/gi\n\n/**\n * As HTML (text) parses tags separately (and v. strictly), we don’t need to be\n * global.\n */\nconst reText = new RegExp('^' + reFlow.source, 'i')\n\n/** @type {HtmlExtension} */\nexport const gfmTagfilterHtml = {\n exit: {\n htmlFlowData(token) {\n exitHtmlData.call(this, token, reFlow)\n },\n htmlTextData(token) {\n exitHtmlData.call(this, token, reText)\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @param {Token} token\n * @param {RegExp} filter\n */\nfunction exitHtmlData(token, filter) {\n let value = this.sliceSerialize(token)\n\n if (this.options.allowDangerousHtml) {\n value = value.replace(filter, '<$1$2')\n }\n\n this.raw(this.encode(value))\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownSpace,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n /** @type {State} */\n\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n if (markdownSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n const self = this\n return factorySpace(effects, after, 'whitespace')\n /** @type {State} */\n\n function after(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'whitespace' &&\n code !== null &&\n !markdownLineEndingOrSpace(code)\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\n/** @type {HtmlExtension} */\nexport const gfmTaskListItemHtml = {\n enter: {\n taskListCheck() {\n this.tag('')\n },\n\n taskListCheckValueChecked() {\n this.tag('checked=\"\" ')\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/** @type {HtmlExtension} */\nexport const gfmHtml = combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n])\n","/**\n * Get the total count of `character` in `value`.\n *\n * @param {any} value Content, coerced to string\n * @param {string} character Single character to look for\n * @return {number} Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n var source = String(value)\n var count = 0\n var index\n\n if (typeof character !== 'string') {\n throw new Error('Expected character')\n }\n\n index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options Configuration.\n * @property {Test} [ignore] `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Extract} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Object.} FindAndReplaceSchema\n * @typedef {Array.} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array.} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array.|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n * * When `string`, turned into a Text node.\n * * When `Function`, called with the results of calling `RegExp.exec` as\n * arguments, in which case it can return a single or a list of `Node`,\n * a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n * )}\n **/\n (\n /**\n * @param {Node} tree\n * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n * @param {Replace|Options} [replace]\n * @param {Options} [options]\n */\n function (tree, find, replace, options) {\n /** @type {Options|undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error don’t expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error don’t expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n return tree\n\n /** @type {import('unist-util-visit-parents').Visitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent|undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = /** @type {Parent} */ (parents[index])\n\n if (\n ignored(\n parent,\n // @ts-expect-error mdast vs. unist parent.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, grandparent)\n }\n }\n\n /**\n * @param {Text} node\n * @param {Parent} parent\n * @returns {VisitorResult}\n */\n function handler(node, parent) {\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n let index = parent.children.indexOf(node)\n /** @type {Array.} */\n let nodes = []\n /** @type {number|undefined} */\n let position\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n position = match.index\n // @ts-expect-error this is perfectly fine, typescript.\n let value = replace(...match, {\n index: match.index,\n input: match.input\n })\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (position === undefined) {\n nodes = [node]\n index--\n } else {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n }\n\n return index + nodes.length + 1\n }\n }\n )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {PhrasingContent} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[_-\\d]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n /** @type {number} */\n let closingParenIndex\n /** @type {number} */\n let openingParens\n /** @type {number} */\n let closingParens\n /** @type {string|undefined} */\n let trail\n\n if (trailExec) {\n url = url.slice(0, trailExec.index)\n trail = trailExec[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n /** @type {Array.} */\n const results = []\n let index = -1\n let before = safeOptions.before\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n let handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: ''\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: \n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n }\n\n results.push(context.handle(child, parent, context, {before, after}))\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [{character: '~', inConstruct: 'phrasing'}],\n handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context) {\n const exit = context.enter('emphasis')\n const value = containerPhrasing(node, context, {before: '~', after: '~'})\n exit()\n return '~~' + value + '~~'\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef MarkdownTableOptions\n * @property {string|null|Array.} [align]\n * @property {boolean} [padding=true]\n * @property {boolean} [delimiterStart=true]\n * @property {boolean} [delimiterStart=true]\n * @property {boolean} [delimiterEnd=true]\n * @property {boolean} [alignDelimiters=true]\n * @property {(value: string) => number} [stringLength]\n */\n\n/**\n * Create a table from a matrix of strings.\n *\n * @param {Array.>} table\n * @param {MarkdownTableOptions} [options]\n * @returns {string}\n */\nexport function markdownTable(table, options) {\n const settings = options || {}\n const align = (settings.align || []).concat()\n const stringLength = settings.stringLength || defaultStringLength\n /** @type {number[]} Character codes as symbols for alignment per column. */\n const alignments = []\n let rowIndex = -1\n /** @type {string[][]} Cells per row. */\n const cellMatrix = []\n /** @type {number[][]} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {number[]} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n /** @type {number} */\n let columnIndex\n /** @type {string[]} Cells of current row */\n let row\n /** @type {number[]} Sizes of current row */\n let sizes\n /** @type {number} Sizes of current cell */\n let size\n /** @type {string} Current cell */\n let cell\n /** @type {string[]} Chunks of current line. */\n let line\n /** @type {string} */\n let before\n /** @type {string} */\n let after\n /** @type {number} */\n let code\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n columnIndex = -1\n row = []\n sizes = []\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n cell = serialize(table[rowIndex][columnIndex])\n\n if (settings.alignDelimiters !== false) {\n size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n row = []\n sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n code = alignments[columnIndex]\n before = ''\n after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n size =\n settings.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n cell = before + '-'.repeat(size) + after\n\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {string[]} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n row = cellMatrix[rowIndex]\n sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n line = []\n\n while (++columnIndex < mostCellsPerRow) {\n cell = row[columnIndex] || ''\n before = ''\n after = ''\n\n if (settings.alignDelimiters !== false) {\n size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n settings.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === '') &&\n (settings.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (settings.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (settings.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (settings.padding !== false) {\n line.push(' ')\n }\n\n if (\n settings.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n settings.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.charCodeAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n /** @type {AlignType[]} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter({type: 'table', align, children: []}, token)\n this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context) {\n // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n return serializeData(handleTableAsData(node, context), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context) {\n const row = handleTableRowAsData(node, context)\n // `markdown-table` will always add an align row\n const value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array.>} matrix\n * @param {Array.} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n alignDelimiters,\n padding,\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n */\n function handleTableAsData(node, context) {\n const children = node.children\n let index = -1\n /** @type {Array.>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], context)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n */\n function handleTableRowAsData(node, context) {\n const children = node.children\n let index = -1\n /** @type {Array.} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node, context)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n /** @type {Array.} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context) {\n const listItemIndent = checkListItemIndent(context)\n let bullet = context.bulletCurrent || checkBullet(context)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const exit = context.enter('listItem')\n const value = indentLines(containerFlow(node, context), map)\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude}\n */\nexport function checkListItemIndent(context) {\n const style = context.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude}\n */\nexport function checkBullet(context) {\n const marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n */\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @returns {string}\n */\nexport function containerFlow(parent, context) {\n const indexStack = context.indexStack\n const children = parent.children || []\n /** @type {Array.} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n context.handle(child, parent, context, {before: '\\n', after: '\\n'})\n )\n\n if (child.type !== 'list') {\n context.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(between(child, children[index + 1]))\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n\n /**\n * @param {Node} left\n * @param {Node} right\n * @returns {string}\n */\n function between(left, right) {\n let index = context.join.length\n\n while (index--) {\n const result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n this.stack[this.stack.length - 2].checked =\n token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n /** @type {Paragraph} */\n // @ts-expect-error: must be true.\n const node = this.stack[this.stack.length - 1]\n /** @type {BlockContent[]} */\n // @ts-expect-error: check whether `parent` is a `listItem` later.\n const siblings = parent.children\n const head = node.children[0]\n let index = -1\n /** @type {Paragraph|undefined} */\n let firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else {\n // @ts-expect-error: must be true.\n head.position.start.column++\n // @ts-expect-error: must be true.\n head.position.start.offset++\n // @ts-expect-error: must be true.\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context) {\n const head = node.children[0]\n let value = listItem(node, parent, context)\n\n if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + '[' + (node.checked ? 'x' : ' ') + '] '\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @type {Array.}\n */\nexport const gfmFromMarkdown = [\n gfmAutolinkLiteralFromMarkdown,\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n]\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GitHub Flavored Markdown (GFM).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown)\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","module","exports","Constructor","protoProps","staticProps","prototype","__esModule","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","keys","values","map","Map","has","indexOf","get","set","value","push","delete","index","splice","createEvent","name","Event","bubbles","e","evt","document","initEvent","ta","nodeName","heightOffset","clientWidth","cachedHeight","pageResize","update","destroy","style","window","removeEventListener","forEach","bind","height","resize","overflowY","overflowX","wordWrap","addEventListener","init","getComputedStyle","boxSizing","parseFloat","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","isNaN","changeOverflow","width","offsetWidth","getParentOverflows","el","arr","parentNode","Element","scrollTop","node","scrollHeight","overflows","docTop","documentElement","styleHeight","Math","round","computed","actualHeight","offsetHeight","dispatchEvent","err","methods","autosize","options","Array","x","default","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","desc","applyBind","prop","currentStyle","replace","word","letter","toUpperCase","LTS","LT","L","LL","LLL","LLLL","t","o","n","r","format","en","formats","$locale","slice","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","fromToBase","relativeTime","u","f","a","l","thresholds","c","diff","p","rounding","abs","v","to","from","$u","utc","toNow","fromNow","date","args","toDate","locale","$L","add","utcOffset","local","parse","$utils","$offset","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","match","getTimezoneOffset","$x","$localOffset","valueOf","Date","isUTC","toISOString","toString","toUTCString","objectKeys","isArguments","is","isRegex","flags","isArray","isDate","whichBoxedPrimitive","callBound","whichCollection","getIterator","getSideChannel","whichTypedArray","$getTime","gPO","getPrototypeOf","$objToString","$Set","$mapHas","$mapGet","$mapSize","$setAdd","$setDelete","$setHas","$setSize","setHasEqualElement","val1","opts","channel","result","next","done","internalDeepEqual","findLooseMatchingPrimitives","prim","mapMightHaveLoosePrim","b","item","altValue","curB","looseOpts","strict","setMightHaveLoosePrim","mapHasEqualEntry","key1","item1","key2","actual","expected","sentinel","hasActual","hasExpected","aIsArray","bIsArray","aIsError","Error","bIsError","message","aIsRegex","bIsRegex","aIsDate","bIsDate","aIsBuffer","isBuffer","bIsBuffer","ka","kb","sort","aCollection","bCollection","resultA","resultB","iA","iB","setEquiv","item2","mapEquiv","objEquiv","copy","constructor","hasSymbols","Symbol","toStr","concat","origDefineProperty","supportsDescriptors","obj","_","arePropertyDescriptorsSupported","object","predicate","fn","defineProperties","predicates","getOwnPropertySymbols","_classCallCheck","instance","TypeError","_createClass","_typeof","iterator","mapping","unified","non_qualified","has_img_apple","has_img_google","has_img_twitter","has_img_facebook","keywords","sheet","emoticons","text","short_names","added_in","buildSearch","emoji","search","addToSearch","strings","split","string","toLowerCase","join","uncompress","data","id","compressed","emojis","unshift","sheet_x","sheet_y","toFixed","String","fromCodePoint","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","codePoint","Number","isFinite","floor","RangeError","fromCharCode","COLONS_REGEX","SKINS","unifiedToNative","codePoints","stringFromCodePoint","sanitize","skin_tone","skin_variations","custom","customCategory","imageUrl","colons","skin","getSanitizedData","getData","emojiData","matches","parseInt","aliases","variations","JSON","stringify","skinKey","variationData","undefined","k","shift","getEmojiDataFromNative","nativeString","skinCode","skinCodes","baseNativeString","skinTone","skinToneIndex","emojiUnified","uniq","reduce","acc","intersect","uniqA","uniqB","filter","deepMerge","originalValue","getter","setter","NAMESPACE","isLocalStorageSupported","localStorage","state","setNamespace","namespace","setHandlers","handlers","NimbleEmojiIndex","originalPool","customEmojisList","buildIndex","_this","_loop","emoticon","pool","_this2","emojiId","_this3","clearCustomEmojis","_this4","_ref","emojisToShowFilter","maxResults","include","exclude","_ref$custom","addCustomToPool","store","results","allResults","categories","category","isIncluded","isExcluded","customIsIncluded","customIsExcluded","aPool","aIndex","charIndex","_char","scores","sub","substr","subIndex","score","aScore","bScore","localeCompare","emojiIndex","frequently","initialized","DEFAULTS","defaults","perLine","quantity","frequentlyKeys","sliced","reverse","last","pop","_defineProperty","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_getPrototypeOf","setPrototypeOf","__proto__","_setPrototypeOf","_inherits","subClass","superClass","create","activity","xmlns","viewBox","transform","rx","foods","nature","objects","people","places","recent","symbols","opacity","EmojiPropTypes","onOver","onLeave","onClick","fallback","backgroundImageFn","forceSize","tooltip","useButton","sheetSize","sheetColumns","sheetRows","size","isRequired","PickerPropTypes","onSelect","onSkinChange","emojiSize","i18n","title","color","showPreview","showSkinTones","emojiTooltip","theme","autoFocus","enableFrequentEmojiSort","spriteUrl","skinEmoji","notFound","notFoundEmoji","icons","Anchors","_React$PureComponent","defaultCategory","first","selected","handleClick","currentTarget","getAttribute","_this$props","onAnchorClick","_this$props2","className","categorieslabel","anchor","isSelected","iconId","startsWith","type","backgroundColor","propTypes","defaultProps","EmojiDefaultProps","PickerDefaultProps","defaultSkin","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","_getData","_getPosition","_getData2","multiplyX","multiplyY","_getSanitizedData","_isNumeric","NimbleEmoji","children","nativeEmoji","label","Boolean","fontSize","display","wordBreak","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","Tag","html","div","createElement","_convertStyleToCSS","_handleClick","onMouseEnter","_handleOver","onMouseLeave","_handleLeave","NotFound","emojiProps","component","notfound","Category","_React$Component","setContainerRef","setLabelRef","margin","minMargin","memoizeSize","nextProps","nextState","_native","hasStickyPosition","nextPerLine","nextNative","nextHasStickyPosition","nextEmojis","nextEmojiProps","nextSkin","nextSize","nextSet","shouldUpdate","container","top","maxMargin","parent","parentElement","_this$container$getBo","getBoundingClientRect","parentTop","labelHeight","frequentlyUsed","getEmojis","_this$props3","labelStyles","labelSpanStyles","containerStyles","position","ref","Skins","opened","onChange","setState","SkinsEmoji","_Skins","skinToneNodes","skintext","SkinsDot","handleKeyDown","event","keyCode","preventDefault","visible","skintones","role","onKeyDown","tabIndex","Preview","skinsProps","idleEmoji","_emojiData$emoticons","knownEmoticons","listedEmoticons","short_name","Search","doIdleTask","running","icon","isSearching","setRef","clear","handleKeyUp","handleChange","requestIdleCallback","setTimeout","input","onSearch","focus","_this$state","inputId","placeholder","htmlFor","onKeyUp","disabled","I18N","NimblePicker","CUSTOM","RECENT_CATEGORY","SEARCH_CATEGORY","firstRender","allCategories","customCategories","customCategoriesCreated","customEmoji","hideRecent","categoryIndex","newEmojis","newCategory","includeRecent","excludeRecent","setAnchorsRef","handleAnchorClick","setSearchRef","handleSearch","setScrollRef","handleScroll","handleScrollPaint","handleEmojiOver","handleEmojiLeave","handleEmojiClick","handleEmojiSelect","setPreviewRef","handleSkinChange","handleDarkMatchMediaChange","testStickyPosition","firstRenderTimeout","updateCategoriesSize","clearTimeout","leaveTimeout","darkMatchMedia","removeListener","stickyTestElement","prefix","matchMedia","addListener","media","preview","categoryRefs","forceUpdate","requestAnimationFrame","scroll","updateDisplay","waitingForPaint","activeCategory","scrollingDown","minTop","ii","active","clientHeight","anchors","categoryName","scrollToComponent","newState","handled","overflow","body","appendChild","scrollbarWidth","removeChild","measureScrollbar","getPreferredTheme","onScroll","getCategories","setCategoryRef","Picker","Emoji","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","array","bigint","bool","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","hasOwn","ctx","ERROR_MESSAGE","that","bound","binder","boundLength","max","boundArgs","Function","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","$BigInt","g","origSymbol","hasSymbolSham","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","toStringTag","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","bigIntValueOf","tryBigInt","$boolToStr","tryBooleanObject","getDay","tryDateObject","exported","$Map","numToStr","tryNumberObject","$exec","isRegexMarker","badStringifier","throwRegexMarker","toPrimitive","gOPD","strValue","tryStringObject","symToStr","symStringRegex","test","isSymbolObject","$WeakMap","$WeakSet","computedStyle","lnHeightStr","lnHeight","_lnHeightStyle","lineHeight","_node","innerHTML","setAttribute","fontSizeStr","padding","border","sources","_class","isFunction","escapeRE","str","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","pos","tail","re","http","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","compile","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","val","__compiled__","__schemas__","compiled","link","isRegExp","createValidator","normalize","isString","slist","schema_test","src_ZPCc","schema_search","pretest","__index__","__text_cache__","resetScanCache","Match","start","end","__last_index__","schema","__schema__","lastIndex","raw","url","createMatch","LinkifyIt","schemas","definition","ml","me","len","tld_pos","exec","testSchemaAt","list","keepOld","idx","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","gOPS","symToString","hasShammedSymbols","isEnumerable","O","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","inspectCustom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","isElement","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","ys","isPlainObject","protoTag","stringTag","tag","remaining","trailer","lowbyte","charCodeAt","entries","lineJoiner","isArr","symMap","j","numberIsNaN","define","getPolyfill","polyfill","keysShim","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isObject","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","canBeObject","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","objTarget","getSymbols","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","extendStatics","__extends","__","__assign","__rest","React","getLineHeight","TextareaAutosizeClass","_super","textarea","onResize","updateLineHeight","currentValue","componentDidMount","_a","maxRows","async","componentWillUnmount","render","_b","innerRef","maxHeight","current","componentDidUpdate","rows","Component","TextareaAutosize","forwardRef","TextareaAutosize_1","newObj","_interopRequireWildcard","_defaultComponentDecorator2","_interopRequireDefault","_defaultHrefDecorator2","_defaultMatchDecorator2","_defaultTextDecorator2","Linkify","matchDecorator","elements","substring","decoratedHref","hrefDecorator","decoratedText","textDecorator","decoratedComponent","componentDecorator","parseString","isValidElement","cloneElement","child","Fragment","href","_linkifyIt2","_tlds2","linkify","_Linkify","_Linkify2","$Object","global","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","TypeErr","regex","proto","codeblocks","tree","lang","formatter","file","$weakMapGet","$weakMapSet","$weakMapHas","$mapSet","listGetNode","curr","$wm","$o","assert","listGet","listHas","listSet","nodeType","scrollWidth","ownerDocument","defaultView","frameElement","scrollMode","block","inline","boundary","skipOverflowHiddenElements","scrollingElement","visualViewport","innerWidth","innerHeight","w","scrollX","pageXOffset","scrollY","pageYOffset","W","H","E","right","bottom","V","left","I","C","T","B","D","R","X","Y","S","borderLeftWidth","q","z","borderRightWidth","A","F","G","J","K","N","scrollLeft","P","min","isOptionsObject","memoizedNow","targetIsDetached","contains","behavior","computeOptions","getOptions","actions","canSmoothScroll","defaultBehavior","now","performance","step","context","time","elapsed","startTime","duration","ease","currentX","startX","currentY","startY","method","cb","smoothScroll","scrollable","ceil","overrides","shouldSmoothScroll","all","startLeft","startTop","resolve","__forceSmoothScrollPolyfill__","userAgent","original","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","navigator","shouldBailOut","scrollableParent","findScrollableParent","parentRects","clientRects","firstArg","hasScrollableSpace","axis","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","host","cos","PI","availableTypedArrays","globalThis","typedArrays","toStrTags","typedArray","superProto","isTypedArray","foundName","tryTypedArrays","anyTrue","possibleNames","out","$iterator","iterable","$arrayPush","$charCodeAt","$stringSlice","getArrayIterator","arraylike","getNonCollectionIterator","noPrimordialCollections","nextIndex","second","advanceStringIndex","$mapForEach","$setForEach","process","versions","$mapIterator","$setIterator","getStopIterationIterator","$mapAtAtIterator","$setAtAtIterator","getCollectionIterator","ABSOLUTE_URL_REGEX","WINDOWS_PATH_REGEX","defaultRel","defaultProtocols","rehypeExternalLinks","rel","protocols","content","contentProperties","tagName","properties","protocol","includes","extend","find","remarkBreaks","www","tokenize","effects","ok","nok","code","consume","w2","w3","dot","after","partial","domain","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","check","namedCharacterReference","punctuationContinuation","punctuation","path","balance","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","inside","wwwAutolink","previousWww","previous","previousUnbalanced","events","enter","attempt","exit","httpAutolink","previousHttp","t1","t2","colon","slash1","slash2","emailAutolink","hasDot","hasDigitInLastSegment","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","gfmAutolinkLiteral","token","_balanced","_gfmAutolinkLiteralWalkedInto","characterReferences","sanitizeUri","encode","skip","normalizeUri","questionMark","numberSign","slash","gfmAutolinkLiteralHtml","literalAutolinkEmail","anchorFromToken","literalAutolinkHttp","literalAutolinkWww","sliceSerialize","gfmStrikethrough","single","singleTilde","tokenizer","more","before","_open","_close","resolveAll","strikethrough","open","nextEvents","offset","parser","constructs","insideSpan","null","attentionMarkers","gfmStrikethroughHtml","gfmTable","flow","align","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","tokenizeRowEnd","atDelimiterLineStart","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","setextUnderlineMini","rowStartDelimiter","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","lineStart","lazy","line","inHead","inDelimiterRow","inRow","cell","contentStart","contentEnd","cellStart","contentType","sequence","whitespace","alignment","center","gfmTableHtml","table","lineEndingIfNeeded","setData","tableBody","tableData","buffer","tableHead","tableHeader","tableRow","codeTextData","column","resume","$0","$1","reFlow","reText","gfmTagfilterHtml","htmlFlowData","exitHtmlData","htmlTextData","allowDangerousHtml","tasklistCheck","_gfmTasklistFirstContentOfListItem","close","spaceThenNonSpace","gfmTaskListItem","gfmTaskListItemHtml","taskListCheck","taskListCheckValueChecked","ccount","character","count","own","findAndReplace","settings","ignored","ignore","pairs","toExpression","toFunction","toPairs","pairIndex","visitor","parents","grandparent","nodes","handler","notInConstruct","gfmAutolinkLiteralFromMarkdown","transforms","findUrl","findEmail","literalAutolink","enterLiteralAutolinkValue","config","autolinkEmail","autolinkProtocol","stack","gfmAutolinkLiteralToMarkdown","unsafe","inConstruct","isCorrectDomain","trailExec","closingParenIndex","openingParens","closingParens","trail","splitUrl","email","containerPhrasing","safeOptions","indexStack","handle","peek","charAt","gfmStrikethroughFromMarkdown","canContainEols","gfmStrikethroughToMarkdown","handleDelete","patternCompile","pattern","_compiled","atBreak","inlineCode","expression","defaultStringLength","toAlignment","enterCell","gfmTableToMarkdown","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","subexit","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","matrix","alignments","rowIndex","cellMatrix","sizeMatrix","longestCellByColumn","columnIndex","row","sizes","mostCellsPerRow","repeat","lines","delimiterStart","delimiterEnd","markdownTable","eol","listItem","listItemIndent","checkListItemIndent","bullet","bulletCurrent","marker","checkBullet","ordered","incrementListMarker","spread","one","indentLines","bulletLastUsed","between","containerFlow","blank","gfmTaskListItemToMarkdown","head","checked","exitCheck","gfmFromMarkdown","codeText","taskListCheckValueUnchecked","paragraph","siblings","firstParaghraph","sibling","remarkGfm","field","gfm","extensions","gfmToMarkdown"],"sourceRoot":""}