{"version":3,"file":"static/js/138.5b1822a6.chunk.js","mappings":"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","sources":["../node_modules/@material-ui/core/esm/internal/svg-icons/Person.js","../node_modules/@material-ui/core/esm/Avatar/Avatar.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@material-ui/core/esm/Card/Card.js","../node_modules/@material-ui/core/esm/Collapse/Collapse.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/TableBody/TableBody.js","../node_modules/@material-ui/core/esm/TableCell/TableCell.js","../node_modules/@material-ui/core/esm/TableHead/TableHead.js","../node_modules/@material-ui/core/esm/TableRow/TableRow.js","../node_modules/@material-ui/core/esm/Table/Table.js","../node_modules/@material-ui/core/esm/Table/TableContext.js","../node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js","../node_modules/popper.js/src/utils/isBrowser.js","../node_modules/popper.js/src/utils/debounce.js","../node_modules/popper.js/src/utils/isFunction.js","../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../node_modules/popper.js/src/utils/getParentNode.js","../node_modules/popper.js/src/utils/getScrollParent.js","../node_modules/popper.js/src/utils/getReferenceNode.js","../node_modules/popper.js/src/utils/isIE.js","../node_modules/popper.js/src/utils/getOffsetParent.js","../node_modules/popper.js/src/utils/getRoot.js","../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../node_modules/popper.js/src/utils/isOffsetContainer.js","../node_modules/popper.js/src/utils/getScroll.js","../node_modules/popper.js/src/utils/getBordersSize.js","../node_modules/popper.js/src/utils/getWindowSizes.js","../node_modules/popper.js/src/utils/getClientRect.js","../node_modules/popper.js/src/utils/getBoundingClientRect.js","../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../node_modules/popper.js/src/utils/includeScroll.js","../node_modules/popper.js/src/utils/isFixed.js","../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../node_modules/popper.js/src/utils/getBoundaries.js","../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../node_modules/popper.js/src/utils/computeAutoPlacement.js","../node_modules/popper.js/src/utils/getReferenceOffsets.js","../node_modules/popper.js/src/utils/getOuterSizes.js","../node_modules/popper.js/src/utils/getOppositePlacement.js","../node_modules/popper.js/src/utils/getPopperOffsets.js","../node_modules/popper.js/src/utils/find.js","../node_modules/popper.js/src/utils/runModifiers.js","../node_modules/popper.js/src/utils/findIndex.js","../node_modules/popper.js/src/methods/update.js","../node_modules/popper.js/src/utils/isModifierEnabled.js","../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../node_modules/popper.js/src/methods/destroy.js","../node_modules/popper.js/src/utils/getWindow.js","../node_modules/popper.js/src/utils/setupEventListeners.js","../node_modules/popper.js/src/methods/enableEventListeners.js","../node_modules/popper.js/src/methods/disableEventListeners.js","../node_modules/popper.js/src/utils/removeEventListeners.js","../node_modules/popper.js/src/utils/isNumeric.js","../node_modules/popper.js/src/utils/setStyles.js","../node_modules/popper.js/src/modifiers/computeStyle.js","../node_modules/popper.js/src/utils/isModifierRequired.js","../node_modules/popper.js/src/methods/placements.js","../node_modules/popper.js/src/utils/clockwise.js","../node_modules/popper.js/src/modifiers/flip.js","../node_modules/popper.js/src/modifiers/offset.js","../node_modules/popper.js/src/modifiers/index.js","../node_modules/popper.js/src/modifiers/shift.js","../node_modules/popper.js/src/modifiers/preventOverflow.js","../node_modules/popper.js/src/modifiers/keepTogether.js","../node_modules/popper.js/src/modifiers/arrow.js","../node_modules/popper.js/src/utils/getOppositeVariation.js","../node_modules/popper.js/src/modifiers/inner.js","../node_modules/popper.js/src/modifiers/hide.js","../node_modules/popper.js/src/utils/getRoundedOffsets.js","../node_modules/popper.js/src/modifiers/applyStyle.js","../node_modules/popper.js/src/utils/setAttributes.js","../node_modules/popper.js/src/methods/defaults.js","../node_modules/popper.js/src/index.js","../node_modules/@material-ui/core/esm/Popper/Popper.js","../node_modules/@material-ui/core/esm/Tooltip/Tooltip.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/icons/Close.js","../node_modules/@material-ui/icons/Error.js","../node_modules/@material-ui/icons/ExpandMore.js","../node_modules/@material-ui/icons/Favorite.js","../node_modules/@material-ui/icons/Forward.js","../node_modules/@material-ui/icons/Person.js","../node_modules/@material-ui/icons/Storefront.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/bail/index.js","../node_modules/ccount/index.js","../node_modules/extend/index.js","../node_modules/is-buffer/index.js","../node_modules/is-plain-obj/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-add-list-metadata/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-find-and-replace/node_modules/unist-util-visit-parents/color.browser.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/index.js","../node_modules/mdast-util-from-markdown/dist/index.js","../node_modules/mdast-util-from-markdown/index.js","../node_modules/mdast-util-gfm-autolink-literal/from-markdown.js","../node_modules/mdast-util-gfm-autolink-literal/to-markdown.js","../node_modules/mdast-util-gfm-strikethrough/from-markdown.js","../node_modules/mdast-util-gfm-strikethrough/to-markdown.js","../node_modules/mdast-util-gfm-table/from-markdown.js","../node_modules/mdast-util-gfm-table/to-markdown.js","../node_modules/mdast-util-gfm-task-list-item/from-markdown.js","../node_modules/mdast-util-gfm-task-list-item/to-markdown.js","../node_modules/mdast-util-gfm/from-markdown.js","../node_modules/mdast-util-gfm/to-markdown.js","../node_modules/mdast-util-to-markdown/lib/configure.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-extension-gfm-autolink-literal/index.js","../node_modules/micromark-extension-gfm-autolink-literal/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/index.js","../node_modules/micromark-extension-gfm-table/index.js","../node_modules/micromark-extension-gfm-table/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/index.js","../node_modules/micromark-extension-gfm-task-list-item/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/micromark-extension-gfm/syntax.js","../node_modules/micromark/dist/character/ascii-alpha.js","../node_modules/micromark/dist/character/ascii-alphanumeric.js","../node_modules/micromark/dist/character/ascii-atext.js","../node_modules/micromark/dist/character/ascii-control.js","../node_modules/micromark/dist/character/ascii-digit.js","../node_modules/micromark/dist/character/ascii-hex-digit.js","../node_modules/micromark/dist/character/ascii-punctuation.js","../node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../node_modules/micromark/dist/character/markdown-line-ending.js","../node_modules/micromark/dist/character/markdown-space.js","../node_modules/micromark/dist/character/unicode-punctuation.js","../node_modules/micromark/dist/character/unicode-whitespace.js","../node_modules/micromark/dist/constant/assign.js","../node_modules/micromark/dist/constant/from-char-code.js","../node_modules/micromark/dist/constant/has-own-property.js","../node_modules/micromark/dist/constant/html-block-names.js","../node_modules/micromark/dist/constant/html-raw-names.js","../node_modules/micromark/dist/constant/splice.js","../node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../node_modules/micromark/dist/constructs.js","../node_modules/micromark/dist/initialize/content.js","../node_modules/micromark/dist/initialize/document.js","../node_modules/micromark/dist/initialize/flow.js","../node_modules/micromark/dist/initialize/text.js","../node_modules/micromark/dist/parse.js","../node_modules/micromark/dist/postprocess.js","../node_modules/micromark/dist/preprocess.js","../node_modules/micromark/dist/tokenize/attention.js","../node_modules/micromark/dist/tokenize/autolink.js","../node_modules/micromark/dist/tokenize/block-quote.js","../node_modules/micromark/dist/tokenize/character-escape.js","../node_modules/micromark/dist/tokenize/character-reference.js","../node_modules/micromark/dist/tokenize/code-fenced.js","../node_modules/micromark/dist/tokenize/code-indented.js","../node_modules/micromark/dist/tokenize/code-text.js","../node_modules/micromark/dist/tokenize/content.js","../node_modules/micromark/dist/tokenize/definition.js","../node_modules/micromark/dist/tokenize/factory-destination.js","../node_modules/micromark/dist/tokenize/factory-label.js","../node_modules/micromark/dist/tokenize/factory-space.js","../node_modules/micromark/dist/tokenize/factory-title.js","../node_modules/micromark/dist/tokenize/factory-whitespace.js","../node_modules/micromark/dist/tokenize/hard-break-escape.js","../node_modules/micromark/dist/tokenize/heading-atx.js","../node_modules/micromark/dist/tokenize/html-flow.js","../node_modules/micromark/dist/tokenize/html-text.js","../node_modules/micromark/dist/tokenize/label-end.js","../node_modules/micromark/dist/tokenize/label-start-image.js","../node_modules/micromark/dist/tokenize/label-start-link.js","../node_modules/micromark/dist/tokenize/line-ending.js","../node_modules/micromark/dist/tokenize/list.js","../node_modules/micromark/dist/tokenize/partial-blank-line.js","../node_modules/micromark/dist/tokenize/setext-underline.js","../node_modules/micromark/dist/tokenize/thematic-break.js","../node_modules/micromark/dist/util/chunked-push.js","../node_modules/micromark/dist/util/chunked-splice.js","../node_modules/micromark/dist/util/classify-character.js","../node_modules/micromark/dist/util/combine-extensions.js","../node_modules/micromark/dist/util/create-tokenizer.js","../node_modules/micromark/dist/util/miniflat.js","../node_modules/micromark/dist/util/move-point.js","../node_modules/micromark/dist/util/normalize-identifier.js","../node_modules/micromark/dist/util/prefix-size.js","../node_modules/micromark/dist/util/regex-check.js","../node_modules/micromark/dist/util/resolve-all.js","../node_modules/micromark/dist/util/safe-from-int.js","../node_modules/micromark/dist/util/serialize-chunks.js","../node_modules/micromark/dist/util/shallow.js","../node_modules/micromark/dist/util/size-chunks.js","../node_modules/micromark/dist/util/slice-chunks.js","../node_modules/micromark/dist/util/subtokenize.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/react-lazyload/lib/index.js","../node_modules/react-lazyload/lib/utils/debounce.js","../node_modules/react-lazyload/lib/utils/event.js","../node_modules/react-lazyload/lib/utils/scrollParent.js","../node_modules/react-lazyload/lib/utils/throttle.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/get-definitions.js","../node_modules/react-markdown/lib/plugins/disallow-node.js","../node_modules/react-markdown/lib/plugins/naive-html.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/react-markdown/lib/renderers.js","../node_modules/react-markdown/lib/symbols.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/wrap-table-rows.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/reactstrap/lib/Button.js","../node_modules/remark-gfm/index.js","../node_modules/remark-parse/index.js","../node_modules/repeat-string/index.js","../node_modules/trough/index.js","../node_modules/trough/wrap.js","../node_modules/unified/index.js","../node_modules/unist-util-is/convert.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-visit/node_modules/unist-util-visit-parents/color.browser.js","../node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/index.js","../node_modules/vfile/lib/core.js","../node_modules/vfile/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/xtend/immutable.js","../node_modules/@babel/runtime/helpers/esm/toArray.js"],"sourcesContent":["import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport Person from '../internal/svg-icons/Person';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none'\n },\n\n /* Styles applied to the root element if not `src` or `srcSet`. */\n colorDefault: {\n color: theme.palette.background.default,\n backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n },\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {},\n\n /* Styles applied to the root element if `variant=\"circular\"`. */\n circular: {},\n\n /* Styles applied to the root element if `variant=\"rounded\"`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"square\"`. */\n square: {\n borderRadius: 0\n },\n\n /* Styles applied to the img element if either `src` or `srcSet` is defined. */\n img: {\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE 11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n },\n\n /* Styles applied to the fallback icon */\n fallback: {\n width: '75%',\n height: '75%'\n }\n };\n};\n\nfunction useLoaded(_ref) {\n var src = _ref.src,\n srcSet = _ref.srcSet;\n\n var _React$useState = React.useState(false),\n loaded = _React$useState[0],\n setLoaded = _React$useState[1];\n\n React.useEffect(function () {\n if (!src && !srcSet) {\n return undefined;\n }\n\n setLoaded(false);\n var active = true;\n var image = new Image();\n image.src = src;\n image.srcSet = srcSet;\n\n image.onload = function () {\n if (!active) {\n return;\n }\n\n setLoaded('loaded');\n };\n\n image.onerror = function () {\n if (!active) {\n return;\n }\n\n setLoaded('error');\n };\n\n return function () {\n active = false;\n };\n }, [src, srcSet]);\n return loaded;\n}\n\nvar Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {\n var alt = props.alt,\n childrenProp = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n imgProps = props.imgProps,\n sizes = props.sizes,\n src = props.src,\n srcSet = props.srcSet,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'circular' : _props$variant,\n other = _objectWithoutProperties(props, [\"alt\", \"children\", \"classes\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"]);\n\n var children = null; // Use a hook instead of onError on the img element to support server-side rendering.\n\n var loaded = useLoaded({\n src: src,\n srcSet: srcSet\n });\n var hasImg = src || srcSet;\n var hasImgNotFailing = hasImg && loaded !== 'error';\n\n if (hasImgNotFailing) {\n children = /*#__PURE__*/React.createElement(\"img\", _extends({\n alt: alt,\n src: src,\n srcSet: srcSet,\n sizes: sizes,\n className: classes.img\n }, imgProps));\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/React.createElement(Person, {\n className: classes.fallback\n });\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes.system, classes[variant], className, !hasImgNotFailing && classes.colorDefault),\n ref: ref\n }, other), children);\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: chainPropTypes(PropTypes.object, function (props) {\n var classes = props.classes;\n\n if (classes == null) {\n return null;\n }\n\n if (classes.circle != null && // 2 classnames? one from withStyles the other must be custom\n classes.circle.split(' ').length > 1) {\n throw new Error(\"Material-UI: The `circle` class is deprecated. Use `circular` instead.\");\n }\n\n return null;\n }),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Attributes applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n */\n imgProps: PropTypes.object,\n\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n\n /**\n * The shape of the avatar.\n */\n variant: chainPropTypes(PropTypes.oneOf(['circle', 'circular', 'rounded', 'square']), function (props) {\n var variant = props.variant;\n\n if (variant === 'circle') {\n throw new Error('Material-UI: `variant=\"circle\"` is deprecated. Use `variant=\"circular\"` instead.');\n }\n\n return null;\n })\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAvatar'\n})(Avatar);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport { alpha } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.button, {\n boxSizing: 'border-box',\n minWidth: 64,\n padding: '6px 16px',\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.text.primary,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n },\n '&$disabled': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }),\n\n /* Styles applied to the span element that wraps the children. */\n label: {\n width: '100%',\n // Ensure the correct width for iOS Safari\n display: 'inherit',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n padding: '6px 8px'\n },\n\n /* Styles applied to the root element if `variant=\"text\"` and `color=\"primary\"`. */\n textPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"text\"` and `color=\"secondary\"`. */\n textSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n padding: '5px 15px',\n border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'),\n '&$disabled': {\n border: \"1px solid \".concat(theme.palette.action.disabledBackground)\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n outlinedPrimary: {\n color: theme.palette.primary.main,\n border: \"1px solid \".concat(alpha(theme.palette.primary.main, 0.5)),\n '&:hover': {\n border: \"1px solid \".concat(theme.palette.primary.main),\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n outlinedSecondary: {\n color: theme.palette.secondary.main,\n border: \"1px solid \".concat(alpha(theme.palette.secondary.main, 0.5)),\n '&:hover': {\n border: \"1px solid \".concat(theme.palette.secondary.main),\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n border: \"1px solid \".concat(theme.palette.action.disabled)\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"`. */\n contained: {\n color: theme.palette.getContrastText(theme.palette.grey[300]),\n backgroundColor: theme.palette.grey[300],\n boxShadow: theme.shadows[2],\n '&:hover': {\n backgroundColor: theme.palette.grey.A100,\n boxShadow: theme.shadows[4],\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n boxShadow: theme.shadows[2],\n backgroundColor: theme.palette.grey[300]\n },\n '&$disabled': {\n backgroundColor: theme.palette.action.disabledBackground\n }\n },\n '&$focusVisible': {\n boxShadow: theme.shadows[6]\n },\n '&:active': {\n boxShadow: theme.shadows[8]\n },\n '&$disabled': {\n color: theme.palette.action.disabled,\n boxShadow: theme.shadows[0],\n backgroundColor: theme.palette.action.disabledBackground\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"` and `color=\"primary\"`. */\n containedPrimary: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.primary.main\n }\n }\n },\n\n /* Styles applied to the root element if `variant=\"contained\"` and `color=\"secondary\"`. */\n containedSecondary: {\n color: theme.palette.secondary.contrastText,\n backgroundColor: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: theme.palette.secondary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.secondary.main\n }\n }\n },\n\n /* Styles applied to the root element if `disableElevation={true}`. */\n disableElevation: {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none'\n },\n '&$focusVisible': {\n boxShadow: 'none'\n },\n '&:active': {\n boxShadow: 'none'\n },\n '&$disabled': {\n boxShadow: 'none'\n }\n },\n\n /* Pseudo-class applied to the ButtonBase root element if the button is keyboard focused. */\n focusVisible: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit',\n borderColor: 'currentColor'\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"text\"`. */\n textSizeSmall: {\n padding: '4px 5px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"text\"`. */\n textSizeLarge: {\n padding: '8px 11px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"outlined\"`. */\n outlinedSizeSmall: {\n padding: '3px 9px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"outlined\"`. */\n outlinedSizeLarge: {\n padding: '7px 21px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"` and `variant=\"contained\"`. */\n containedSizeSmall: {\n padding: '4px 10px',\n fontSize: theme.typography.pxToRem(13)\n },\n\n /* Styles applied to the root element if `size=\"large\"` and `variant=\"contained\"`. */\n containedSizeLarge: {\n padding: '8px 22px',\n fontSize: theme.typography.pxToRem(15)\n },\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {},\n\n /* Styles applied to the root element if `size=\"large\"`. */\n sizeLarge: {},\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n },\n\n /* Styles applied to the startIcon element if supplied. */\n startIcon: {\n display: 'inherit',\n marginRight: 8,\n marginLeft: -4,\n '&$iconSizeSmall': {\n marginLeft: -2\n }\n },\n\n /* Styles applied to the endIcon element if supplied. */\n endIcon: {\n display: 'inherit',\n marginRight: -4,\n marginLeft: 8,\n '&$iconSizeSmall': {\n marginRight: -2\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"small\"`. */\n iconSizeSmall: {\n '& > *:first-child': {\n fontSize: 18\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"medium\"`. */\n iconSizeMedium: {\n '& > *:first-child': {\n fontSize: 20\n }\n },\n\n /* Styles applied to the icon element if supplied and `size=\"large\"`. */\n iconSizeLarge: {\n '& > *:first-child': {\n fontSize: 22\n }\n }\n };\n};\nvar Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableElevati = props.disableElevation,\n disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n endIconProp = props.endIcon,\n focusVisibleClassName = props.focusVisibleClassName,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n startIconProp = props.startIcon,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"endIcon\", \"focusVisibleClassName\", \"fullWidth\", \"size\", \"startIcon\", \"type\", \"variant\"]);\n\n var startIcon = startIconProp && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.startIcon, classes[\"iconSize\".concat(capitalize(size))])\n }, startIconProp);\n var endIcon = endIconProp && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(classes.endIcon, classes[\"iconSize\".concat(capitalize(size))])\n }, endIconProp);\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, classes[variant], className, color === 'inherit' ? classes.colorInherit : color !== 'default' && classes[\"\".concat(variant).concat(capitalize(color))], size !== 'medium' && [classes[\"\".concat(variant, \"Size\").concat(capitalize(size))], classes[\"size\".concat(capitalize(size))]], disableElevation && classes.disableElevation, disabled && classes.disabled, fullWidth && classes.fullWidth),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ref: ref,\n type: type\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, startIcon, children, endIcon));\n});\nprocess.env.NODE_ENV !== \"production\" ? Button.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the button.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, no elevation is used.\n */\n disableElevation: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * Element placed after the children.\n */\n endIcon: PropTypes.node,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * If `true`, the button will take up the full width of its container.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['large', 'medium', 'small']),\n\n /**\n * Element placed before the children.\n */\n startIcon: PropTypes.node,\n\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string]),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['contained', 'outlined', 'text'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiButton'\n})(Button);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Paper from '../Paper';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden'\n }\n};\nvar Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$raised = props.raised,\n raised = _props$raised === void 0 ? false : _props$raised,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"raised\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : 1,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the card will use raised styling.\n */\n raised: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiCard'\n})(Card);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes } from '@material-ui/utils';\nimport { Transition } from 'react-transition-group';\nimport withStyles from '../styles/withStyles';\nimport { duration } from '../styles/transitions';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport { getTransitionProps } from '../transitions/utils';\nimport useTheme from '../styles/useTheme';\nimport { useForkRef } from '../utils';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height')\n },\n\n /* Styles applied to the root element when the transition has entered. */\n entered: {\n height: 'auto',\n overflow: 'visible'\n },\n\n /* Styles applied to the root element when the transition has exited and `collapsedSize` != 0px. */\n hidden: {\n visibility: 'hidden'\n },\n\n /* Styles applied to the outer wrapper element. */\n wrapper: {\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex'\n },\n\n /* Styles applied to the inner wrapper element. */\n wrapperInner: {\n width: '100%'\n }\n };\n};\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/components/steppers/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Collapse = /*#__PURE__*/React.forwardRef(function Collapse(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n collapsedHeight = props.collapsedHeight,\n _props$collapsedSize = props.collapsedSize,\n collapsedSizeProp = _props$collapsedSize === void 0 ? '0px' : _props$collapsedSize,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? duration.standard : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"collapsedHeight\", \"collapsedSize\", \"component\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var theme = useTheme();\n var timer = React.useRef();\n var wrapperRef = React.useRef(null);\n var autoTransitionDuration = React.useRef();\n var collapsedSize = typeof (collapsedHeight || collapsedSizeProp) === 'number' ? \"\".concat(collapsedHeight || collapsedSizeProp, \"px\") : collapsedHeight || collapsedSizeProp;\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var handleRef = useForkRef(ref, enableStrictModeCompat ? nodeRef : undefined);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n node.style.height = collapsedSize;\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration;\n\n if (timeout === 'auto') {\n var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n }\n\n node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(function (node, isAppearing) {\n node.style.height = 'auto';\n\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n var handleExit = normalizedTransitionCallback(function (node) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n var handleExiting = normalizedTransitionCallback(function (node) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration;\n\n if (timeout === 'auto') {\n var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n }\n\n node.style.height = collapsedSize;\n\n if (onExiting) {\n onExiting(node);\n }\n });\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n }\n };\n\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes.container, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: _extends({\n minHeight: collapsedSize\n }, style),\n ref: handleRef\n }, childProps), /*#__PURE__*/React.createElement(\"div\", {\n className: classes.wrapper,\n ref: wrapperRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.wrapperInner\n }, children)));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: chainPropTypes(PropTypes.object, function (props) {\n if (props.classes && props.classes.container) {\n throw new Error(['Material-UI: the classes.container key is deprecated.', 'Use `classes.root` instead', 'The name of the pseudo-class was changed for consistency.'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The height of the container when collapsed.\n * @deprecated The prop was renamed to support the addition of horizontal orientation, use `collapsedSize` instead.\n */\n collapsedHeight: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'The prop was renamed to support the vertical orientation, use `collapsedSize` instead'),\n\n /**\n * The height of the container when collapsed.\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the passed `Component`.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nCollapse.muiSupportAuto = true;\nexport default withStyles(styles, {\n name: 'MuiCollapse'\n})(Collapse);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getScale(value) {\n return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var timer = React.useRef();\n var autoTimeout = React.useRef();\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n delay = _getTransitionProps.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n delay = _getTransitionProps2.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n };\n\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, show the component; triggers the enter or exit animation.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n */\n elevation: chainPropTypes(PropTypes.number, function (props) {\n var classes = props.classes,\n elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n if (classes === undefined) {\n return null;\n }\n\n if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n */\n square: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['elevation', 'outlined'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport setRef from '../utils/setRef';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container; // #StrictMode ready\n\n return ReactDOM.findDOMNode(container);\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\nvar Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n var children = props.children,\n container = props.container,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n onRendered = props.onRendered;\n\n var _React$useState = React.useState(null),\n mountNode = _React$useState[0],\n setMountNode = _React$useState[1];\n\n var handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(function () {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(function () {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return function () {\n setRef(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n useEnhancedEffect(function () {\n if (onRendered && (mountNode || disablePortal)) {\n onRendered();\n }\n }, [onRendered, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n\n /**\n * A HTML element, component instance, or function that returns either.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Callback fired once the children has been mounted into the `container`.\n *\n * This prop will be removed in v5, the ref can be used instead.\n * @deprecated Use the ref instead.\n */\n onRendered: deprecatedPropType(PropTypes.func, 'Use the ref instead.')\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\n\nexport default Portal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'table-row-group'\n }\n};\nvar tablelvl2 = {\n variant: 'body'\n};\nvar defaultComponent = 'tbody';\nvar TableBody = /*#__PURE__*/React.forwardRef(function TableBody(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n\n return /*#__PURE__*/React.createElement(Tablelvl2Context.Provider, {\n value: tablelvl2\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n role: Component === defaultComponent ? null : 'rowgroup'\n }, other)));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableBody.propTypes = {\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableBody'\n})(TableBody);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport { darken, alpha, lighten } from '../styles/colorManipulator';\nimport TableContext from '../Table/TableContext';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, {\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: \"1px solid\\n \".concat(theme.palette.type === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)),\n textAlign: 'left',\n padding: 16\n }),\n\n /* Styles applied to the root element if `variant=\"head\"` or `context.table.head`. */\n head: {\n color: theme.palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n },\n\n /* Styles applied to the root element if `variant=\"body\"` or `context.table.body`. */\n body: {\n color: theme.palette.text.primary\n },\n\n /* Styles applied to the root element if `variant=\"footer\"` or `context.table.footer`. */\n footer: {\n color: theme.palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n },\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: '6px 24px 6px 16px',\n '&:last-child': {\n paddingRight: 16\n },\n '&$paddingCheckbox': {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '&:last-child': {\n paddingLeft: 12,\n paddingRight: 16\n },\n '& > *': {\n padding: 0\n }\n }\n },\n\n /* Styles applied to the root element if `padding=\"checkbox\"`. */\n paddingCheckbox: {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px',\n '&:last-child': {\n paddingLeft: 0,\n paddingRight: 4\n }\n },\n\n /* Styles applied to the root element if `padding=\"none\"`. */\n paddingNone: {\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n\n /* Styles applied to the root element if `align=\"left\"`. */\n alignLeft: {\n textAlign: 'left'\n },\n\n /* Styles applied to the root element if `align=\"center\"`. */\n alignCenter: {\n textAlign: 'center'\n },\n\n /* Styles applied to the root element if `align=\"right\"`. */\n alignRight: {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n },\n\n /* Styles applied to the root element if `align=\"justify\"`. */\n alignJustify: {\n textAlign: 'justify'\n },\n\n /* Styles applied to the root element if `context.table.stickyHeader={true}`. */\n stickyHeader: {\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 2,\n backgroundColor: theme.palette.background.default\n }\n };\n};\n/**\n * The component renders a `` element when the parent context is a header\n * or otherwise a `` element.\n */\n\nvar TableCell = /*#__PURE__*/React.forwardRef(function TableCell(props, ref) {\n var _props$align = props.align,\n align = _props$align === void 0 ? 'inherit' : _props$align,\n classes = props.classes,\n className = props.className,\n component = props.component,\n paddingProp = props.padding,\n scopeProp = props.scope,\n sizeProp = props.size,\n sortDirection = props.sortDirection,\n variantProp = props.variant,\n other = _objectWithoutProperties(props, [\"align\", \"classes\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"]);\n\n var table = React.useContext(TableContext);\n var tablelvl2 = React.useContext(Tablelvl2Context);\n var isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n var role;\n var Component;\n\n if (component) {\n Component = component;\n role = isHeadCell ? 'columnheader' : 'cell';\n } else {\n Component = isHeadCell ? 'th' : 'td';\n }\n\n var scope = scopeProp;\n\n if (!scope && isHeadCell) {\n scope = 'col';\n }\n\n var padding = paddingProp || (table && table.padding ? table.padding : 'normal');\n var size = sizeProp || (table && table.size ? table.size : 'medium');\n var variant = variantProp || tablelvl2 && tablelvl2.variant;\n var ariaSort = null;\n\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, align !== 'inherit' && classes[\"align\".concat(capitalize(align))], padding !== 'normal' && classes[\"padding\".concat(capitalize(padding))], size !== 'medium' && classes[\"size\".concat(capitalize(size))], variant === 'head' && table && table.stickyHeader && classes.stickyHeader),\n \"aria-sort\": ariaSort,\n role: role,\n scope: scope\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes = {\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n\n /**\n * The table cell contents.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Sets the padding applied to the cell.\n * By default, the Table parent component set the value (`normal`).\n * `default` is deprecated, use `normal` instead.\n */\n padding: chainPropTypes(PropTypes.oneOf(['normal', 'checkbox', 'none', 'default']), function (props) {\n if (props.padding === 'default') {\n return new Error('Material-UI: padding=\"default\" was renamed to padding=\"normal\" for consistency.');\n }\n\n return null;\n }),\n\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n\n /**\n * Specify the size of the cell.\n * By default, the Table parent component set the value (`medium`).\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n\n /**\n * Specify the cell type.\n * By default, the TableHead, TableBody or TableFooter parent component set the value.\n */\n variant: PropTypes.oneOf(['body', 'footer', 'head'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableCell'\n})(TableCell);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'table-header-group'\n }\n};\nvar tablelvl2 = {\n variant: 'head'\n};\nvar defaultComponent = 'thead';\nvar TableHead = /*#__PURE__*/React.forwardRef(function TableHead(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n\n return /*#__PURE__*/React.createElement(Tablelvl2Context.Provider, {\n value: tablelvl2\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n role: Component === defaultComponent ? null : 'rowgroup'\n }, other)));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.propTypes = {\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableHead'\n})(TableHead);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport { alpha } from '../styles/colorManipulator';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n '&$hover:hover': {\n backgroundColor: theme.palette.action.hover\n },\n '&$selected, &$selected:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.selectedOpacity)\n }\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {},\n\n /* Pseudo-class applied to the root element if `hover={true}`. */\n hover: {},\n\n /* Styles applied to the root element if table variant=\"head\". */\n head: {},\n\n /* Styles applied to the root element if table variant=\"footer\". */\n footer: {}\n };\n};\nvar defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\nvar TableRow = /*#__PURE__*/React.forwardRef(function TableRow(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n _props$hover = props.hover,\n hover = _props$hover === void 0 ? false : _props$hover,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"hover\", \"selected\"]);\n\n var tablelvl2 = React.useContext(Tablelvl2Context);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, className, tablelvl2 && {\n 'head': classes.head,\n 'footer': classes.footer\n }[tablelvl2.variant], hover && classes.hover, selected && classes.selected),\n role: Component === defaultComponent ? null : 'row'\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes = {\n /**\n * Should be valid children such as `TableCell`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the table row will shade on hover.\n */\n hover: PropTypes.bool,\n\n /**\n * If `true`, the table row will have the selected shading.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableRow'\n})(TableRow);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport TableContext from './TableContext';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n '& caption': _extends({}, theme.typography.body2, {\n padding: theme.spacing(2),\n color: theme.palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom'\n })\n },\n\n /* Styles applied to the root element if `stickyHeader={true}`. */\n stickyHeader: {\n borderCollapse: 'separate'\n }\n };\n};\nvar defaultComponent = 'table';\nvar Table = /*#__PURE__*/React.forwardRef(function Table(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n _props$padding = props.padding,\n padding = _props$padding === void 0 ? 'normal' : _props$padding,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n _props$stickyHeader = props.stickyHeader,\n stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"padding\", \"size\", \"stickyHeader\"]);\n\n var table = React.useMemo(function () {\n return {\n padding: padding,\n size: size,\n stickyHeader: stickyHeader\n };\n }, [padding, size, stickyHeader]);\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: table\n }, /*#__PURE__*/React.createElement(Component, _extends({\n role: Component === defaultComponent ? null : 'table',\n ref: ref,\n className: clsx(classes.root, className, stickyHeader && classes.stickyHeader)\n }, other)));\n});\nprocess.env.NODE_ENV !== \"production\" ? Table.propTypes = {\n /**\n * The content of the table, normally `TableHead` and `TableBody`.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Allows TableCells to inherit padding of the Table.\n * `default` is deprecated, use `normal` instead.\n */\n padding: chainPropTypes(PropTypes.oneOf(['normal', 'checkbox', 'none', 'default']), function (props) {\n if (props.padding === 'default') {\n return new Error('Material-UI: padding=\"default\" was renamed to padding=\"normal\" for consistency.');\n }\n\n return null;\n }),\n\n /**\n * Allows TableCells to inherit size of the Table.\n */\n size: PropTypes.oneOf(['small', 'medium']),\n\n /**\n * Set the header sticky.\n *\n * ⚠️ It doesn't work with IE 11.\n */\n stickyHeader: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTable'\n})(Table);","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar TableContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\n\nexport default TableContext;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar Tablelvl2Context = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport PopperJs from 'popper.js';\nimport { chainPropTypes, refType, HTMLElementType } from '@material-ui/utils';\nimport { useTheme } from '@material-ui/styles';\nimport Portal from '../Portal';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport setRef from '../utils/setRef';\nimport useForkRef from '../utils/useForkRef';\n\nfunction flipPlacement(placement, theme) {\n var direction = theme && theme.direction || 'ltr';\n\n if (direction === 'ltr') {\n return placement;\n }\n\n switch (placement) {\n case 'bottom-end':\n return 'bottom-start';\n\n case 'bottom-start':\n return 'bottom-end';\n\n case 'top-end':\n return 'top-start';\n\n case 'top-start':\n return 'top-end';\n\n default:\n return placement;\n }\n}\n\nfunction getAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar defaultPopperOptions = {};\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://popper.js.org/docs/v1/) for positioning.\n */\n\nvar Popper = /*#__PURE__*/React.forwardRef(function Popper(props, ref) {\n var anchorEl = props.anchorEl,\n children = props.children,\n container = props.container,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n _props$keepMounted = props.keepMounted,\n keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n modifiers = props.modifiers,\n open = props.open,\n _props$placement = props.placement,\n initialPlacement = _props$placement === void 0 ? 'bottom' : _props$placement,\n _props$popperOptions = props.popperOptions,\n popperOptions = _props$popperOptions === void 0 ? defaultPopperOptions : _props$popperOptions,\n popperRefProp = props.popperRef,\n style = props.style,\n _props$transition = props.transition,\n transition = _props$transition === void 0 ? false : _props$transition,\n other = _objectWithoutProperties(props, [\"anchorEl\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"style\", \"transition\"]);\n\n var tooltipRef = React.useRef(null);\n var ownRef = useForkRef(tooltipRef, ref);\n var popperRef = React.useRef(null);\n var handlePopperRef = useForkRef(popperRef, popperRefProp);\n var handlePopperRefRef = React.useRef(handlePopperRef);\n useEnhancedEffect(function () {\n handlePopperRefRef.current = handlePopperRef;\n }, [handlePopperRef]);\n React.useImperativeHandle(popperRefProp, function () {\n return popperRef.current;\n }, []);\n\n var _React$useState = React.useState(true),\n exited = _React$useState[0],\n setExited = _React$useState[1];\n\n var theme = useTheme();\n var rtlPlacement = flipPlacement(initialPlacement, theme);\n /**\n * placement initialized from prop but can change during lifetime if modifiers.flip.\n * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n */\n\n var _React$useState2 = React.useState(rtlPlacement),\n placement = _React$useState2[0],\n setPlacement = _React$useState2[1];\n\n React.useEffect(function () {\n if (popperRef.current) {\n popperRef.current.update();\n }\n });\n var handleOpen = React.useCallback(function () {\n if (!tooltipRef.current || !anchorEl || !open) {\n return;\n }\n\n if (popperRef.current) {\n popperRef.current.destroy();\n handlePopperRefRef.current(null);\n }\n\n var handlePopperUpdate = function handlePopperUpdate(data) {\n setPlacement(data.placement);\n };\n\n var resolvedAnchorEl = getAnchorEl(anchorEl);\n\n if (process.env.NODE_ENV !== 'production') {\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n var box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n }\n\n var popper = new PopperJs(getAnchorEl(anchorEl), tooltipRef.current, _extends({\n placement: rtlPlacement\n }, popperOptions, {\n modifiers: _extends({}, disablePortal ? {} : {\n // It's using scrollParent by default, we can use the viewport when using a portal.\n preventOverflow: {\n boundariesElement: 'window'\n }\n }, modifiers, popperOptions.modifiers),\n // We could have been using a custom modifier like react-popper is doing.\n // But it seems this is the best public API for this use case.\n onCreate: createChainedFunction(handlePopperUpdate, popperOptions.onCreate),\n onUpdate: createChainedFunction(handlePopperUpdate, popperOptions.onUpdate)\n }));\n handlePopperRefRef.current(popper);\n }, [anchorEl, disablePortal, modifiers, open, rtlPlacement, popperOptions]);\n var handleRef = React.useCallback(function (node) {\n setRef(ownRef, node);\n handleOpen();\n }, [ownRef, handleOpen]);\n\n var handleEnter = function handleEnter() {\n setExited(false);\n };\n\n var handleClose = function handleClose() {\n if (!popperRef.current) {\n return;\n }\n\n popperRef.current.destroy();\n handlePopperRefRef.current(null);\n };\n\n var handleExited = function handleExited() {\n setExited(true);\n handleClose();\n };\n\n React.useEffect(function () {\n return function () {\n handleClose();\n };\n }, []);\n React.useEffect(function () {\n if (!open && !transition) {\n // Otherwise handleExited will call this.\n handleClose();\n }\n }, [open, transition]);\n\n if (!keepMounted && !open && (!transition || exited)) {\n return null;\n }\n\n var childProps = {\n placement: placement\n };\n\n if (transition) {\n childProps.TransitionProps = {\n in: open,\n onEnter: handleEnter,\n onExited: handleExited\n };\n }\n\n return /*#__PURE__*/React.createElement(Portal, {\n disablePortal: disablePortal,\n container: container\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: handleRef,\n role: \"tooltip\"\n }, other, {\n style: _extends({\n // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n position: 'fixed',\n // Fix Popper.js display issue\n top: 0,\n left: 0,\n display: !open && keepMounted && !transition ? 'none' : null\n }, style)\n }), typeof children === 'function' ? children(childProps) : children));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A HTML element, [referenceObject](https://popper.js.org/docs/v1/#referenceObject),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]), function (props) {\n if (props.open) {\n var resolvedAnchorEl = getAnchorEl(props.anchorEl);\n\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n var box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedAnchorEl || typeof resolvedAnchorEl.clientWidth !== 'number' || typeof resolvedAnchorEl.clientHeight !== 'number' || typeof resolvedAnchorEl.getBoundingClientRect !== 'function') {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'It should be an HTML element instance or a referenceObject ', '(https://popper.js.org/docs/v1/#referenceObject).'].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * Popper render function or node.\n */\n children: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n\n /**\n * A HTML element, component instance, or function that returns either.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n */\n keepMounted: PropTypes.bool,\n\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v1/#modifiers).\n */\n modifiers: PropTypes.object,\n\n /**\n * If `true`, the popper is visible.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * Popper placement.\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n /**\n * Options provided to the [`popper.js`](https://popper.js.org/docs/v1/) instance.\n */\n popperOptions: PropTypes.object,\n\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * Help supporting a react-transition-group/Transition component.\n */\n transition: PropTypes.bool\n} : void 0;\nexport default Popper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { deepmerge, elementAcceptingRef } from '@material-ui/utils';\nimport { alpha } from '../styles/colorManipulator';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport Popper from '../Popper';\nimport useForkRef from '../utils/useForkRef';\nimport useId from '../utils/unstable_useId';\nimport setRef from '../utils/setRef';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useControlled from '../utils/useControlled';\nimport useTheme from '../styles/useTheme';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nfunction arrowGenerator() {\n return {\n '&[x-placement*=\"bottom\"] $arrow': {\n top: 0,\n left: 0,\n marginTop: '-0.71em',\n marginLeft: 4,\n marginRight: 4,\n '&::before': {\n transformOrigin: '0 100%'\n }\n },\n '&[x-placement*=\"top\"] $arrow': {\n bottom: 0,\n left: 0,\n marginBottom: '-0.71em',\n marginLeft: 4,\n marginRight: 4,\n '&::before': {\n transformOrigin: '100% 0'\n }\n },\n '&[x-placement*=\"right\"] $arrow': {\n left: 0,\n marginLeft: '-0.71em',\n height: '1em',\n width: '0.71em',\n marginTop: 4,\n marginBottom: 4,\n '&::before': {\n transformOrigin: '100% 100%'\n }\n },\n '&[x-placement*=\"left\"] $arrow': {\n right: 0,\n marginRight: '-0.71em',\n height: '1em',\n width: '0.71em',\n marginTop: 4,\n marginBottom: 4,\n '&::before': {\n transformOrigin: '0 0'\n }\n }\n };\n}\n\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the Popper component. */\n popper: {\n zIndex: theme.zIndex.tooltip,\n pointerEvents: 'none' // disable jss-rtl plugin\n\n },\n\n /* Styles applied to the Popper component if `interactive={true}`. */\n popperInteractive: {\n pointerEvents: 'auto'\n },\n\n /* Styles applied to the Popper component if `arrow={true}`. */\n popperArrow: arrowGenerator(),\n\n /* Styles applied to the tooltip (label wrapper) element. */\n tooltip: {\n backgroundColor: alpha(theme.palette.grey[700], 0.9),\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.common.white,\n fontFamily: theme.typography.fontFamily,\n padding: '4px 8px',\n fontSize: theme.typography.pxToRem(10),\n lineHeight: \"\".concat(round(14 / 10), \"em\"),\n maxWidth: 300,\n wordWrap: 'break-word',\n fontWeight: theme.typography.fontWeightMedium\n },\n\n /* Styles applied to the tooltip (label wrapper) element if `arrow={true}`. */\n tooltipArrow: {\n position: 'relative',\n margin: '0'\n },\n\n /* Styles applied to the arrow element. */\n arrow: {\n overflow: 'hidden',\n position: 'absolute',\n width: '1em',\n height: '0.71em'\n /* = width / sqrt(2) = (length of the hypotenuse) */\n ,\n boxSizing: 'border-box',\n color: alpha(theme.palette.grey[700], 0.9),\n '&::before': {\n content: '\"\"',\n margin: 'auto',\n display: 'block',\n width: '100%',\n height: '100%',\n backgroundColor: 'currentColor',\n transform: 'rotate(45deg)'\n }\n },\n\n /* Styles applied to the tooltip (label wrapper) element if the tooltip is opened by touch. */\n touch: {\n padding: '8px 16px',\n fontSize: theme.typography.pxToRem(14),\n lineHeight: \"\".concat(round(16 / 14), \"em\"),\n fontWeight: theme.typography.fontWeightRegular\n },\n\n /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"left\". */\n tooltipPlacementLeft: _defineProperty({\n transformOrigin: 'right center',\n margin: '0 24px '\n }, theme.breakpoints.up('sm'), {\n margin: '0 14px'\n }),\n\n /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"right\". */\n tooltipPlacementRight: _defineProperty({\n transformOrigin: 'left center',\n margin: '0 24px'\n }, theme.breakpoints.up('sm'), {\n margin: '0 14px'\n }),\n\n /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"top\". */\n tooltipPlacementTop: _defineProperty({\n transformOrigin: 'center bottom',\n margin: '24px 0'\n }, theme.breakpoints.up('sm'), {\n margin: '14px 0'\n }),\n\n /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"bottom\". */\n tooltipPlacementBottom: _defineProperty({\n transformOrigin: 'center top',\n margin: '24px 0'\n }, theme.breakpoints.up('sm'), {\n margin: '14px 0'\n })\n };\n};\nvar hystersisOpen = false;\nvar hystersisTimer = null;\nexport function testReset() {\n hystersisOpen = false;\n clearTimeout(hystersisTimer);\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n children = props.children,\n classes = props.classes,\n _props$disableFocusLi = props.disableFocusListener,\n disableFocusListener = _props$disableFocusLi === void 0 ? false : _props$disableFocusLi,\n _props$disableHoverLi = props.disableHoverListener,\n disableHoverListener = _props$disableHoverLi === void 0 ? false : _props$disableHoverLi,\n _props$disableTouchLi = props.disableTouchListener,\n disableTouchListener = _props$disableTouchLi === void 0 ? false : _props$disableTouchLi,\n _props$enterDelay = props.enterDelay,\n enterDelay = _props$enterDelay === void 0 ? 100 : _props$enterDelay,\n _props$enterNextDelay = props.enterNextDelay,\n enterNextDelay = _props$enterNextDelay === void 0 ? 0 : _props$enterNextDelay,\n _props$enterTouchDela = props.enterTouchDelay,\n enterTouchDelay = _props$enterTouchDela === void 0 ? 700 : _props$enterTouchDela,\n idProp = props.id,\n _props$interactive = props.interactive,\n interactive = _props$interactive === void 0 ? false : _props$interactive,\n _props$leaveDelay = props.leaveDelay,\n leaveDelay = _props$leaveDelay === void 0 ? 0 : _props$leaveDelay,\n _props$leaveTouchDela = props.leaveTouchDelay,\n leaveTouchDelay = _props$leaveTouchDela === void 0 ? 1500 : _props$leaveTouchDela,\n onClose = props.onClose,\n onOpen = props.onOpen,\n openProp = props.open,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottom' : _props$placement,\n _props$PopperComponen = props.PopperComponent,\n PopperComponent = _props$PopperComponen === void 0 ? Popper : _props$PopperComponen,\n PopperProps = props.PopperProps,\n title = props.title,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,\n TransitionProps = props.TransitionProps,\n other = _objectWithoutProperties(props, [\"arrow\", \"children\", \"classes\", \"disableFocusListener\", \"disableHoverListener\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"id\", \"interactive\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"title\", \"TransitionComponent\", \"TransitionProps\"]);\n\n var theme = useTheme();\n\n var _React$useState = React.useState(),\n childNode = _React$useState[0],\n setChildNode = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowRef = _React$useState2[0],\n setArrowRef = _React$useState2[1];\n\n var ignoreNonTouchEvents = React.useRef(false);\n var closeTimer = React.useRef();\n var enterTimer = React.useRef();\n var leaveTimer = React.useRef();\n var touchTimer = React.useRef();\n\n var _useControlled = useControlled({\n controlled: openProp,\n default: false,\n name: 'Tooltip',\n state: 'open'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n openState = _useControlled2[0],\n setOpenState = _useControlled2[1];\n\n var open = openState;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var _React$useRef = React.useRef(openProp !== undefined),\n isControlled = _React$useRef.current; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n\n React.useEffect(function () {\n if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n console.error(['Material-UI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n }\n }, [title, childNode, isControlled]);\n }\n\n var id = useId(idProp);\n React.useEffect(function () {\n return function () {\n clearTimeout(closeTimer.current);\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n clearTimeout(touchTimer.current);\n };\n }, []);\n\n var handleOpen = function handleOpen(event) {\n clearTimeout(hystersisTimer);\n hystersisOpen = true; // The mouseover event will trigger for every nested element in the tooltip.\n // We can skip rerendering when the tooltip is already open.\n // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n\n setOpenState(true);\n\n if (onOpen) {\n onOpen(event);\n }\n };\n\n var handleEnter = function handleEnter() {\n var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function (event) {\n var childrenProps = children.props;\n\n if (event.type === 'mouseover' && childrenProps.onMouseOver && forward) {\n childrenProps.onMouseOver(event);\n }\n\n if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n return;\n } // Remove the title ahead of time.\n // We don't want to wait for the next render commit.\n // We would risk displaying two tooltips at the same time (native + this one).\n\n\n if (childNode) {\n childNode.removeAttribute('title');\n }\n\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n\n if (enterDelay || hystersisOpen && enterNextDelay) {\n event.persist();\n enterTimer.current = setTimeout(function () {\n handleOpen(event);\n }, hystersisOpen ? enterNextDelay : enterDelay);\n } else {\n handleOpen(event);\n }\n };\n };\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n var _React$useState3 = React.useState(false),\n childIsFocusVisible = _React$useState3[0],\n setChildIsFocusVisible = _React$useState3[1];\n\n var handleBlur = function handleBlur() {\n if (childIsFocusVisible) {\n setChildIsFocusVisible(false);\n onBlurVisible();\n }\n };\n\n var handleFocus = function handleFocus() {\n var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function (event) {\n // Workaround for https://github.com/facebook/react/issues/7769\n // The autoFocus of React might trigger the event before the componentDidMount.\n // We need to account for this eventuality.\n if (!childNode) {\n setChildNode(event.currentTarget);\n }\n\n if (isFocusVisible(event)) {\n setChildIsFocusVisible(true);\n handleEnter()(event);\n }\n\n var childrenProps = children.props;\n\n if (childrenProps.onFocus && forward) {\n childrenProps.onFocus(event);\n }\n };\n };\n\n var handleClose = function handleClose(event) {\n clearTimeout(hystersisTimer);\n hystersisTimer = setTimeout(function () {\n hystersisOpen = false;\n }, 800 + leaveDelay);\n setOpenState(false);\n\n if (onClose) {\n onClose(event);\n }\n\n clearTimeout(closeTimer.current);\n closeTimer.current = setTimeout(function () {\n ignoreNonTouchEvents.current = false;\n }, theme.transitions.duration.shortest);\n };\n\n var handleLeave = function handleLeave() {\n var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function (event) {\n var childrenProps = children.props;\n\n if (event.type === 'blur') {\n if (childrenProps.onBlur && forward) {\n childrenProps.onBlur(event);\n }\n\n handleBlur();\n }\n\n if (event.type === 'mouseleave' && childrenProps.onMouseLeave && event.currentTarget === childNode) {\n childrenProps.onMouseLeave(event);\n }\n\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n event.persist();\n leaveTimer.current = setTimeout(function () {\n handleClose(event);\n }, leaveDelay);\n };\n };\n\n var detectTouchStart = function detectTouchStart(event) {\n ignoreNonTouchEvents.current = true;\n var childrenProps = children.props;\n\n if (childrenProps.onTouchStart) {\n childrenProps.onTouchStart(event);\n }\n };\n\n var handleTouchStart = function handleTouchStart(event) {\n detectTouchStart(event);\n clearTimeout(leaveTimer.current);\n clearTimeout(closeTimer.current);\n clearTimeout(touchTimer.current);\n event.persist();\n touchTimer.current = setTimeout(function () {\n handleEnter()(event);\n }, enterTouchDelay);\n };\n\n var handleTouchEnd = function handleTouchEnd(event) {\n if (children.props.onTouchEnd) {\n children.props.onTouchEnd(event);\n }\n\n clearTimeout(touchTimer.current);\n clearTimeout(leaveTimer.current);\n event.persist();\n leaveTimer.current = setTimeout(function () {\n handleClose(event);\n }, leaveTouchDelay);\n };\n\n var handleUseRef = useForkRef(setChildNode, ref);\n var handleFocusRef = useForkRef(focusVisibleRef, handleUseRef); // can be removed once we drop support for non ref forwarding class components\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n setRef(handleFocusRef, ReactDOM.findDOMNode(instance));\n }, [handleFocusRef]);\n var handleRef = useForkRef(children.ref, handleOwnRef); // There is no point in displaying an empty tooltip.\n\n if (title === '') {\n open = false;\n } // For accessibility and SEO concerns, we render the title to the DOM node when\n // the tooltip is hidden. However, we have made a tradeoff when\n // `disableHoverListener` is set. This title logic is disabled.\n // It's allowing us to keep the implementation size minimal.\n // We are open to change the tradeoff.\n\n\n var shouldShowNativeTitle = !open && !disableHoverListener;\n\n var childrenProps = _extends({\n 'aria-describedby': open ? id : null,\n title: shouldShowNativeTitle && typeof title === 'string' ? title : null\n }, other, children.props, {\n className: clsx(other.className, children.props.className),\n onTouchStart: detectTouchStart,\n ref: handleRef\n });\n\n var interactiveWrapperListeners = {};\n\n if (!disableTouchListener) {\n childrenProps.onTouchStart = handleTouchStart;\n childrenProps.onTouchEnd = handleTouchEnd;\n }\n\n if (!disableHoverListener) {\n childrenProps.onMouseOver = handleEnter();\n childrenProps.onMouseLeave = handleLeave();\n\n if (interactive) {\n interactiveWrapperListeners.onMouseOver = handleEnter(false);\n interactiveWrapperListeners.onMouseLeave = handleLeave(false);\n }\n }\n\n if (!disableFocusListener) {\n childrenProps.onFocus = handleFocus();\n childrenProps.onBlur = handleLeave();\n\n if (interactive) {\n interactiveWrapperListeners.onFocus = handleFocus(false);\n interactiveWrapperListeners.onBlur = handleLeave(false);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (children.props.title) {\n console.error(['Material-UI: You have provided a `title` prop to the child of .', \"Remove this title prop `\".concat(children.props.title, \"` or the Tooltip component.\")].join('\\n'));\n }\n }\n\n var mergedPopperProps = React.useMemo(function () {\n return deepmerge({\n popperOptions: {\n modifiers: {\n arrow: {\n enabled: Boolean(arrowRef),\n element: arrowRef\n }\n }\n }\n }, PopperProps);\n }, [arrowRef, PopperProps]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(children, childrenProps), /*#__PURE__*/React.createElement(PopperComponent, _extends({\n className: clsx(classes.popper, interactive && classes.popperInteractive, arrow && classes.popperArrow),\n placement: placement,\n anchorEl: childNode,\n open: childNode ? open : false,\n id: childrenProps['aria-describedby'],\n transition: true\n }, interactiveWrapperListeners, mergedPopperProps), function (_ref) {\n var placementInner = _ref.placement,\n TransitionPropsInner = _ref.TransitionProps;\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n timeout: theme.transitions.duration.shorter\n }, TransitionPropsInner, TransitionProps), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.tooltip, classes[\"tooltipPlacement\".concat(capitalize(placementInner.split('-')[0]))], ignoreNonTouchEvents.current && classes.touch, arrow && classes.tooltipArrow)\n }, title, arrow ? /*#__PURE__*/React.createElement(\"span\", {\n className: classes.arrow,\n ref: setArrowRef\n }) : null));\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tooltip.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, adds an arrow to the tooltip.\n */\n arrow: PropTypes.bool,\n\n /**\n * Tooltip reference element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Do not respond to focus events.\n */\n disableFocusListener: PropTypes.bool,\n\n /**\n * Do not respond to hover events.\n */\n disableHoverListener: PropTypes.bool,\n\n /**\n * Do not respond to long press touch events.\n */\n disableTouchListener: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This prop won't impact the enter touch delay (`enterTouchDelay`).\n */\n enterDelay: PropTypes.number,\n\n /**\n * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n */\n enterNextDelay: PropTypes.number,\n\n /**\n * The number of milliseconds a user must touch the element before showing the tooltip.\n */\n enterTouchDelay: PropTypes.number,\n\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n\n /**\n * Makes a tooltip interactive, i.e. will not close when the user\n * hovers over the tooltip before the `leaveDelay` is expired.\n */\n interactive: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before hiding the tooltip.\n * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n */\n leaveDelay: PropTypes.number,\n\n /**\n * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n */\n leaveTouchDelay: PropTypes.number,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be open.\n *\n * @param {object} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n\n /**\n * If `true`, the tooltip is shown.\n */\n open: PropTypes.bool,\n\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n /**\n * The component used for the popper.\n */\n PopperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Popper`](/api/popper/) element.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Tooltip title. Zero-length titles string are never displayed.\n */\n title: PropTypes\n /* @typescript-to-proptypes-ignore */\n .node.isRequired,\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTooltip',\n flip: false\n})(Tooltip);","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"\n}), 'Error');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"\n}), 'Favorite');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8V4l8 8-8 8v-4H4V8z\"\n}), 'Forward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9 8.89l-1.05-4.37c-.22-.9-1-1.52-1.91-1.52H5.05c-.9 0-1.69.63-1.9 1.52L2.1 8.89c-.24 1.02-.02 2.06.62 2.88.08.11.19.19.28.29V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6.94c.09-.09.2-.18.28-.28.64-.82.87-1.87.62-2.89zm-2.99-3.9l1.05 4.37c.1.42.01.84-.25 1.17-.14.18-.44.47-.94.47-.61 0-1.14-.49-1.21-1.14L16.98 5l1.93-.01zM13 5h1.96l.54 4.52c.05.39-.07.78-.33 1.07-.22.26-.54.41-.95.41-.67 0-1.22-.59-1.22-1.31V5zM8.49 9.52L9.04 5H11v4.69c0 .72-.55 1.31-1.29 1.31-.34 0-.65-.15-.89-.41-.25-.29-.37-.68-.33-1.07zm-4.45-.16L5.05 5h1.97l-.58 4.86c-.08.65-.6 1.14-1.21 1.14-.49 0-.8-.29-.93-.47-.27-.32-.36-.75-.26-1.17zM5 19v-6.03c.08.01.15.03.23.03.87 0 1.66-.36 2.24-.95.6.6 1.4.95 2.31.95.87 0 1.65-.36 2.23-.93.59.57 1.39.93 2.29.93.84 0 1.64-.35 2.24-.95.58.59 1.37.95 2.24.95.08 0 .15-.02.23-.03V19H5z\"\n}), 'Storefront');\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict'\n\nmodule.exports = ccount\n\nfunction ccount(source, character) {\n var value = String(source)\n var count = 0\n var index\n\n if (typeof character !== 'string') {\n throw new Error('Expected character')\n }\n\n index = value.indexOf(character)\n\n while (index !== -1) {\n count++\n index = value.indexOf(character, index + character.length)\n }\n\n return count\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nvar repeat = require('repeat-string')\n\nmodule.exports = markdownTable\n\nvar trailingWhitespace = / +$/\n\n// Characters.\nvar space = ' '\nvar lineFeed = '\\n'\nvar dash = '-'\nvar colon = ':'\nvar verticalBar = '|'\n\nvar x = 0\nvar C = 67\nvar L = 76\nvar R = 82\nvar c = 99\nvar l = 108\nvar r = 114\n\n// Create a table from a matrix of strings.\nfunction markdownTable(table, options) {\n var settings = options || {}\n var padding = settings.padding !== false\n var start = settings.delimiterStart !== false\n var end = settings.delimiterEnd !== false\n var align = (settings.align || []).concat()\n var alignDelimiters = settings.alignDelimiters !== false\n var alignments = []\n var stringLength = settings.stringLength || defaultStringLength\n var rowIndex = -1\n var rowLength = table.length\n var cellMatrix = []\n var sizeMatrix = []\n var row = []\n var sizes = []\n var longestCellByColumn = []\n var mostCellsPerRow = 0\n var cells\n var columnIndex\n var columnLength\n var largest\n var size\n var cell\n var lines\n var line\n var before\n var after\n var 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 < rowLength) {\n cells = table[rowIndex]\n columnIndex = -1\n columnLength = cells.length\n row = []\n sizes = []\n\n if (columnLength > mostCellsPerRow) {\n mostCellsPerRow = columnLength\n }\n\n while (++columnIndex < columnLength) {\n cell = serialize(cells[columnIndex])\n\n if (alignDelimiters === true) {\n size = stringLength(cell)\n sizes[columnIndex] = size\n\n largest = longestCellByColumn[columnIndex]\n\n if (largest === undefined || size > largest) {\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 columnLength = mostCellsPerRow\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n code = toAlignment(align)\n\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n columnLength = mostCellsPerRow\n row = []\n sizes = []\n\n while (++columnIndex < columnLength) {\n code = alignments[columnIndex]\n before = ''\n after = ''\n\n if (code === l) {\n before = colon\n } else if (code === r) {\n after = colon\n } else if (code === c) {\n before = colon\n after = colon\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n size = alignDelimiters\n ? Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n : 1\n\n cell = before + repeat(dash, size) + after\n\n if (alignDelimiters === true) {\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 rowLength = cellMatrix.length\n lines = []\n\n while (++rowIndex < rowLength) {\n row = cellMatrix[rowIndex]\n sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n columnLength = mostCellsPerRow\n line = []\n\n while (++columnIndex < columnLength) {\n cell = row[columnIndex] || ''\n before = ''\n after = ''\n\n if (alignDelimiters === true) {\n size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n code = alignments[columnIndex]\n\n if (code === r) {\n before = repeat(space, size)\n } else if (code === c) {\n if (size % 2 === 0) {\n before = repeat(space, size / 2)\n after = before\n } else {\n before = repeat(space, size / 2 + 0.5)\n after = repeat(space, size / 2 - 0.5)\n }\n } else {\n after = repeat(space, size)\n }\n }\n\n if (start === true && columnIndex === 0) {\n line.push(verticalBar)\n }\n\n if (\n padding === true &&\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 !(alignDelimiters === false && cell === '') &&\n (start === true || columnIndex !== 0)\n ) {\n line.push(space)\n }\n\n if (alignDelimiters === true) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (alignDelimiters === true) {\n line.push(after)\n }\n\n if (padding === true) {\n line.push(space)\n }\n\n if (end === true || columnIndex !== columnLength - 1) {\n line.push(verticalBar)\n }\n }\n\n line = line.join('')\n\n if (end === false) {\n line = line.replace(trailingWhitespace, '')\n }\n\n lines.push(line)\n }\n\n return lines.join(lineFeed)\n}\n\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\nfunction defaultStringLength(value) {\n return value.length\n}\n\nfunction toAlignment(value) {\n var code = typeof value === 'string' ? value.charCodeAt(0) : x\n\n return code === L || code === l\n ? l\n : code === R || code === r\n ? r\n : code === C || code === c\n ? c\n : x\n}\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nmodule.exports = findAndReplace\n\nvar visit = require('unist-util-visit-parents')\nvar convert = require('unist-util-is/convert')\nvar escape = require('escape-string-regexp')\n\nvar splice = [].splice\n\nfunction findAndReplace(tree, find, replace, options) {\n var settings\n var schema\n\n if (typeof find === 'string' || (find && typeof find.exec === 'function')) {\n schema = [[find, replace]]\n } else {\n schema = find\n options = replace\n }\n\n settings = options || {}\n\n search(tree, settings, handlerFactory(toPairs(schema)))\n\n return tree\n\n function handlerFactory(pairs) {\n var pair = pairs[0]\n\n return handler\n\n function handler(node, parent) {\n var find = pair[0]\n var replace = pair[1]\n var nodes = []\n var start = 0\n var index = parent.children.indexOf(node)\n var position\n var match\n var subhandler\n var value\n\n find.lastIndex = 0\n\n match = find.exec(node.value)\n\n while (match) {\n position = match.index\n value = replace.apply(\n null,\n [].concat(match, {index: match.index, input: match.input})\n )\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({type: 'text', value: node.value.slice(start, position)})\n }\n\n if (typeof value === 'string' && value.length > 0) {\n value = {type: 'text', value: value}\n }\n\n if (value) {\n nodes = [].concat(nodes, 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 nodes.unshift(index, 1)\n splice.apply(parent.children, nodes)\n }\n\n if (pairs.length > 1) {\n subhandler = handlerFactory(pairs.slice(1))\n position = -1\n\n while (++position < nodes.length) {\n node = nodes[position]\n\n if (node.type === 'text') {\n subhandler(node, parent)\n } else {\n search(node, settings, subhandler)\n }\n }\n }\n\n return index + nodes.length + 1\n }\n }\n}\n\nfunction search(tree, settings, handler) {\n var ignored = convert(settings.ignore || [])\n var result = []\n\n visit(tree, 'text', visitor)\n\n return result\n\n function visitor(node, parents) {\n var index = -1\n var parent\n var grandparent\n\n while (++index < parents.length) {\n parent = parents[index]\n\n if (\n ignored(\n parent,\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n return handler(node, grandparent)\n }\n}\n\nfunction toPairs(schema) {\n var result = []\n var key\n var index\n\n if (typeof schema !== 'object') {\n throw new Error('Expected array or object as schema')\n }\n\n if ('length' in schema) {\n 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 for (key in schema) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n\n return result\n}\n\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : returner\n\n function returner() {\n return replace\n }\n}\n","'use strict';\n\nmodule.exports = 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 \\unnnn 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","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","var ccount = require('ccount')\nvar findAndReplace = require('mdast-util-find-and-replace')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nexports.transforms = [transformGfmAutolinkLiterals]\nexports.enter = {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n}\nexports.exit = {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n}\n\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token)\n}\n\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/i, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\nfunction findUrl($0, protocol, domain, path, match) {\n var prefix = ''\n var parts\n var result\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 parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n 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 result = [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\nfunction findEmail($0, atext, label, match) {\n // Not an expected previous character.\n if (!previous(match, true) || /[_-]$/.test(label)) {\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\nfunction isCorrectDomain(domain) {\n var 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\nfunction splitUrl(url) {\n var trail = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n var closingParenIndex\n var openingParens\n var closingParens\n\n if (trail) {\n url = url.slice(0, trail.index)\n trail = trail[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\nfunction previous(match, email) {\n var code = match.input.charCodeAt(match.index - 1)\n return (\n (code !== code || unicodeWhitespace(code) || unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","var inConstruct = 'phrasing'\nvar notInConstruct = ['autolink', 'link', 'image', 'label']\n\nexports.unsafe = [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n }\n]\n","exports.canContainEols = ['delete']\nexports.enter = {strikethrough: enterStrikethrough}\nexports.exit = {strikethrough: exitStrikethrough}\n\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\n\nexports.unsafe = [{character: '~', inConstruct: 'phrasing'}]\nexports.handlers = {delete: handleDelete}\n\nhandleDelete.peek = peekDelete\n\nfunction handleDelete(node, _, context) {\n var exit = context.enter('emphasis')\n var value = phrasing(node, context, {before: '~', after: '~'})\n exit()\n return '~~' + value + '~~'\n}\n\nfunction peekDelete() {\n return '~'\n}\n","exports.enter = {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n}\nexports.exit = {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n}\n\nfunction enterTable(token) {\n this.enter({type: 'table', align: token._align, children: []}, token)\n this.setData('inTable', true)\n}\n\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\nfunction exit(token) {\n this.exit(token)\n}\n\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.\nfunction exitCodeText(token) {\n var value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n this.stack[this.stack.length - 1].value = value\n this.exit(token)\n}\n\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\nvar defaultInlineCode = require('mdast-util-to-markdown/lib/handle/inline-code')\nvar markdownTable = require('markdown-table')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var settings = options || {}\n var padding = settings.tableCellPadding\n var alignDelimiters = settings.tablePipeAlign\n var stringLength = settings.stringLength\n var 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 function handleTable(node, _, context) {\n return serializeData(handleTableAsData(node, context), node.align)\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 function handleTableRow(node, _, context) {\n var row = handleTableRowAsData(node, context)\n // `markdown-table` will always add an align row\n var value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n function handleTableCell(node, _, context) {\n var exit = context.enter('tableCell')\n var value = phrasing(node, context, {before: around, after: around})\n exit()\n return value\n }\n\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align: align,\n alignDelimiters: alignDelimiters,\n padding: padding,\n stringLength: stringLength\n })\n }\n\n function handleTableAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('table')\n\n while (++index < length) {\n result[index] = handleTableRowAsData(children[index], context)\n }\n\n subexit()\n\n return result\n }\n\n function handleTableRowAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('tableRow')\n\n while (++index < length) {\n result[index] = handleTableCell(children[index], node, context)\n }\n\n subexit()\n\n return result\n }\n\n function inlineCodeWithTable(node, parent, context) {\n var value = defaultInlineCode(node, parent, context)\n\n if (context.stack.indexOf('tableCell') !== -1) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","exports.exit = {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n}\n\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\nfunction exitParagraphWithTaskListItem(token) {\n var parent = this.stack[this.stack.length - 2]\n var node = this.stack[this.stack.length - 1]\n var siblings = parent.children\n var head = node.children[0]\n var index = -1\n var 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 if (siblings[index].type === 'paragraph') {\n firstParaghraph = siblings[index]\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 head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n","var defaultListItem = require('mdast-util-to-markdown/lib/handle/list-item')\n\nexports.unsafe = [{atBreak: true, character: '-', after: '[:|-]'}]\n\nexports.handlers = {\n listItem: listItemWithTaskListItem\n}\n\nfunction listItemWithTaskListItem(node, parent, context) {\n var value = defaultListItem(node, parent, context)\n var head = node.children[0]\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 function check($0) {\n return $0 + '[' + (node.checked ? 'x' : ' ') + '] '\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/from-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/from-markdown')\nvar table = require('mdast-util-gfm-table/from-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/from-markdown')\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = configure([\n autolinkLiteral,\n strikethrough,\n table,\n taskListItem\n])\n\nfunction configure(extensions) {\n var config = {transforms: [], canContainEols: []}\n var length = extensions.length\n var index = -1\n\n while (++index < length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n var right\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n right = extension[key]\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, right)\n } else {\n Object.assign(left, right)\n }\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/to-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/to-markdown')\nvar table = require('mdast-util-gfm-table/to-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/to-markdown')\nvar configure = require('mdast-util-to-markdown/lib/configure')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var config = configure(\n {handlers: {}, join: [], unsafe: [], options: {}},\n {\n extensions: [autolinkLiteral, strikethrough, table(options), taskListItem]\n }\n )\n\n return Object.assign(config.options, {\n handlers: config.handlers,\n join: config.join,\n unsafe: config.unsafe\n })\n}\n","module.exports = configure\n\nfunction configure(base, extension) {\n var index = -1\n var key\n\n // First do subextensions.\n if (extension.extensions) {\n while (++index < extension.extensions.length) {\n configure(base, extension.extensions[index])\n }\n }\n\n for (key in extension) {\n if (key === 'extensions') {\n // Empty.\n } else if (key === 'unsafe' || key === 'join') {\n base[key] = base[key].concat(extension[key] || [])\n } else if (key === 'handlers') {\n base[key] = Object.assign(base[key], extension[key] || {})\n } else {\n base.options[key] = extension[key]\n }\n }\n\n return base\n}\n","module.exports = inlineCode\ninlineCode.peek = inlineCodePeek\n\nvar patternCompile = require('../util/pattern-compile')\n\nfunction inlineCode(node, parent, context) {\n var value = node.value || ''\n var sequence = '`'\n var index = -1\n var pattern\n var expression\n var match\n var position\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.charAt(0)) ||\n /[ \\r\\n`]/.test(value.charAt(value.length - 1)))\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 pattern = context.unsafe[index]\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 expression = patternCompile(pattern)\n\n while ((match = expression.exec(value))) {\n 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\nfunction inlineCodePeek() {\n return '`'\n}\n","module.exports = listItem\n\nvar repeat = require('repeat-string')\nvar checkBullet = require('../util/check-bullet')\nvar checkListItemIndent = require('../util/check-list-item-indent')\nvar flow = require('../util/container-flow')\nvar indentLines = require('../util/indent-lines')\n\nfunction listItem(node, parent, context) {\n var bullet = checkBullet(context)\n var listItemIndent = checkListItemIndent(context)\n var size\n var value\n var exit\n\n if (parent && parent.ordered) {\n bullet =\n (parent.start > -1 ? parent.start : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n '.'\n }\n\n size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' && ((parent && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n exit = context.enter('listItem')\n value = indentLines(flow(node, context), map)\n exit()\n\n return value\n\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","module.exports = checkBullet\n\nfunction checkBullet(context) {\n var 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","module.exports = checkListItemIndent\n\nfunction checkListItemIndent(context) {\n var style = context.options.listItemIndent || 'tab'\n\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","module.exports = flow\n\nvar repeat = require('repeat-string')\n\nfunction flow(parent, context) {\n var children = parent.children || []\n var results = []\n var index = -1\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n results.push(\n context.handle(child, parent, context, {before: '\\n', after: '\\n'})\n )\n\n if (index + 1 < children.length) {\n results.push(between(child, children[index + 1]))\n }\n }\n\n return results.join('')\n\n function between(left, right) {\n var index = -1\n var result\n\n while (++index < context.join.length) {\n 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 repeat('\\n', 1 + Number(result))\n }\n\n if (result === false) {\n return '\\n\\n\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","module.exports = phrasing\n\nfunction phrasing(parent, context, safeOptions) {\n var children = parent.children || []\n var results = []\n var index = -1\n var before = safeOptions.before\n var after\n var handle\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n if (index + 1 < children.length) {\n 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(\n context.handle(child, parent, context, {\n before: before,\n after: after\n })\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n return results.join('')\n}\n","module.exports = indentLines\n\nvar eol = /\\r?\\n|\\r/g\n\nfunction indentLines(value, map) {\n var result = []\n var start = 0\n var line = 0\n var 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 function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","module.exports = patternCompile\n\nfunction patternCompile(pattern) {\n var before\n var after\n\n if (!pattern._compiled) {\n before = pattern.before ? '(?:' + pattern.before + ')' : ''\n after = pattern.after ? '(?:' + pattern.after + ')' : ''\n\n if (pattern.atBreak) {\n before = '[\\\\r\\\\n][\\\\t ]*' + before\n }\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (after || ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","module.exports = require('./syntax')\n","var asciiAlpha = require('micromark/dist/character/ascii-alpha')\nvar asciiAlphanumeric = require('micromark/dist/character/ascii-alphanumeric')\nvar asciiControl = require('micromark/dist/character/ascii-control')\nvar markdownLineEnding = require('micromark/dist/character/markdown-line-ending')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nvar www = {tokenize: tokenizeWww, partial: true}\nvar domain = {tokenize: tokenizeDomain, partial: true}\nvar path = {tokenize: tokenizePath, partial: true}\nvar punctuation = {tokenize: tokenizePunctuation, partial: true}\nvar namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\n\nvar wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previousWww}\nvar httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previousHttp}\nvar emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previousEmail}\n\nvar text = {}\n\n// Export hooked constructs.\nexports.text = text\n\n// `0`\nvar code = 48\n\n// While the code is smaller than `{`.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n // Jump from `:` -> `A`\n if (code === 58) code = 65\n // Jump from `[` -> `a`\n else if (code === 91) code = 97\n}\n\n// `+`\ntext[43] = emailAutolink\n// `-`\ntext[45] = emailAutolink\n// `.`\ntext[46] = emailAutolink\n// `_`\ntext[95] = emailAutolink\n// `h`.\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\n// `w`.\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n var self = this\n var hasDot\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n // `@`\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n\n function label(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (\n // `-`\n code === 45 ||\n // `_`\n code === 95\n ) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n return label\n }\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n\n function afterDashOrUnderscore(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n\n function done(code) {\n if (hasDot) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 87 && code - 32 !== 87) ||\n !previousWww(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // 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 return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 72 && code - 32 !== 72) ||\n !previousHttp(self.previous) ||\n previous(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\n function t1(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n\n function t2(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n\n function p(code) {\n // `p`\n if (code === 80 || code - 32 === 80) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n\n function s(code) {\n // `s`\n if (code === 83 || code - 32 === 83) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n\n function colon(code) {\n // `:`\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n\n function slash1(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n\n function slash2(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume a `w`.\n effects.consume(code)\n return w2\n }\n\n function w2(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n\n function w3(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n\n function dot(code) {\n // `.`\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n\nfunction tokenizeDomain(effects, ok, nok) {\n var hasUnderscoreInLastSegment\n var hasUnderscoreInLastLastSegment\n\n return domain\n\n function domain(code) {\n // `&`\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 }\n\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 if (\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\n function punctuationContinuation(code) {\n // `.`\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n // `_`\n if (code === 95) hasUnderscoreInLastSegment = true\n\n effects.consume(code)\n return domain\n }\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizePath(effects, ok) {\n var balance = 0\n\n return inPath\n\n function inPath(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n // `(`\n if (code === 40) {\n balance++\n }\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\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume an ampersand.\n effects.consume(code)\n return inside\n }\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n // `;`\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\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\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n\n function start(code) {\n // Always a valid trailing punctuation marker.\n effects.consume(code)\n return after\n }\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n }\n\n // If the punctuation marker is followed by the end of the path, it’s not\n // continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction trailingPunctuation(code) {\n return (\n // `!`\n code === 33 ||\n // `\"`\n code === 34 ||\n // `'`\n code === 39 ||\n // `)`\n code === 41 ||\n // `*`\n code === 42 ||\n // `,`\n code === 44 ||\n // `.`\n code === 46 ||\n // `:`\n code === 58 ||\n // `;`\n code === 59 ||\n // `<`\n code === 60 ||\n // `?`\n code === 63 ||\n // `_`.\n code === 95 ||\n // `~`\n code === 126\n )\n}\n\nfunction pathEnd(code) {\n return (\n // EOF.\n code === null ||\n // CR, LF, CRLF, HT, VS.\n code < 0 ||\n // Space.\n code === 32 ||\n // `<`\n code === 60\n )\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\nfunction previousWww(code) {\n return (\n code === null ||\n code < 0 ||\n code === 32 /* ` ` */ ||\n code === 40 /* `(` */ ||\n code === 42 /* `*` */ ||\n code === 95 /* `_` */ ||\n code === 126 /* `~` */\n )\n}\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n\nfunction previousEmail(code) {\n return code !== 47 /* `/` */ && previousHttp(code)\n}\n\nfunction previous(events) {\n var index = events.length\n\n while (index--) {\n if (\n (events[index][1].type === 'labelLink' ||\n events[index][1].type === 'labelImage') &&\n !events[index][1]._balanced\n ) {\n return true\n }\n }\n}\n","module.exports = create\n\nvar classifyCharacter = require('micromark/dist/util/classify-character')\nvar chunkedSplice = require('micromark/dist/util/chunked-splice')\nvar resolveAll = require('micromark/dist/util/resolve-all')\nvar shallow = require('micromark/dist/util/shallow')\n\nfunction create(options) {\n var settings = options || {}\n var single = settings.singleTilde\n var tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {text: {126: tokenizer}, insideSpan: {null: tokenizer}}\n\n // Take events and resolve strikethrough.\n function resolveAllStrikethrough(events, context) {\n var index = -1\n var strikethrough\n var text\n var open\n var nextEvents\n\n // Walk through all events.\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\n\n // Now walk back to find an opener.\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 &&\n // 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\n strikethrough = {\n type: 'strikethrough',\n start: shallow(events[open][1].start),\n end: shallow(events[index][1].end)\n }\n\n text = {\n type: 'strikethroughText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n\n // Opening.\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n // Between.\n chunkedSplice(\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 )\n\n // Closing.\n chunkedSplice(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\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n return removeRemainingSequences(events)\n }\n\n function removeRemainingSequences(events) {\n var index = -1\n var length = events.length\n\n while (++index < length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n\n function tokenizeStrikethrough(effects, ok, nok) {\n var previous = this.previous\n var events = this.events\n var size = 0\n\n return start\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\n function more(code) {\n var before = classifyCharacter(previous)\n var token\n var after\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 token = effects.exit('strikethroughSequenceTemporary')\n after = classifyCharacter(code)\n token._open = !after || (after === 2 && before)\n token._close = !before || (before === 2 && after)\n return ok(code)\n }\n }\n}\n","module.exports = require('./syntax')\n","exports.flow = {\n null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true}\n}\n\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nvar setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}\nvar nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}\n\nfunction resolveTable(events, context) {\n var length = events.length\n var index = -1\n var token\n var inHead\n var inDelimiterRow\n var inRow\n var cell\n var content\n var text\n var contentStart\n var contentEnd\n var cellStart\n\n while (++index < 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 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 contentType: 'text'\n }\n\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n length = events.length\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 length = events.length\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\nfunction tokenizeTable(effects, ok, nok) {\n var align = []\n var tableHeaderCount = 0\n var seenDelimiter\n var hasDash\n\n return start\n\n function start(code) {\n /* istanbul ignore if - used to be passed in beta micromark versions. */\n if (code === null || code === -5 || code === -4 || code === -3) {\n return nok(code)\n }\n\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentHead(code)\n }\n\n function cellDividerHead(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n\n function cellBreakHead(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndHead(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n // `|`\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n\n function inWhitespaceHead(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n\n function inCellContentEscapeHead(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n }\n\n // Anything else.\n return inCellContentHead(code)\n }\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n\n // If a setext heading, exit.\n return effects.check(\n setextUnderlineMini,\n nok,\n // Support an indent before the delimiter row.\n createSpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )\n }\n\n function rowStartDelimiter(code) {\n // If there’s another space, or we’re at the EOL/EOF, exit.\n if (code === null || code < 0 || code === 32) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n\n function atDelimiterRowBreak(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\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 // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n }\n\n // If we start with a pipe, we open a cell marker.\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\n function inWhitespaceDelimiter(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n\n function inFillerDelimiter(code) {\n // `-`\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n\n function afterLeftAlignment(code) {\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n }\n\n // Anything else is not ok.\n return nok(code)\n }\n\n function afterRightAlignment(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\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\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow')\n\n // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\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(nextPrefixedOrBlank, tableClose, tableContinue)(code)\n }\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n\n function tableContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // We checked that it’s not a prefixed or blank line, so we’re certain a\n // body is coming, though it may be indented.\n return createSpace(effects, bodyStart, 'linePrefix', 4)\n }\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n\n function rowStartBody(code) {\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentBody(code)\n }\n\n function cellDividerBody(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n\n function cellBreakBody(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndBody(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n }\n\n // `|`\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n\n function inWhitespaceBody(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n\n function inCellContentEscapeBody(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n }\n\n // Anything else.\n return inCellContentBody(code)\n }\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 tableBodyContinue\n )(code)\n }\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n\n function tableBodyContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // Support an optional prefix, then start a body row.\n return createSpace(effects, rowStartBody, 'linePrefix', 4)\n }\n}\n\n// Based on micromark, but that won’t work as we’re in a table, and that expects\n// content.\n// \nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n\n function start(code) {\n // `-`\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n\n function whitespace(code) {\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return whitespace\n }\n\n if (code === null || code === -5 || code === -4 || code === -3) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n var size = 0\n\n return start\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')\n // EOL.\n effects.consume(code)\n return whitespace\n }\n\n function whitespace(code) {\n // VS or SP.\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n }\n\n // EOF or whitespace\n if (code === null || code < 0) {\n return ok(code)\n }\n\n // Anything else.\n return nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var markdownLineEndingOrSpace = require('micromark/dist/character/markdown-line-ending-or-space')\nvar spaceFactory = require('micromark/dist/tokenize/factory-space')\nvar prefixSize = require('micromark/dist/util/prefix-size')\n\nvar tasklistCheck = {tokenize: tokenizeTasklistCheck}\n\nexports.text = {91: tasklistCheck}\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n var self = this\n\n return open\n\n function open(code) {\n if (\n // Exit if not `[`.\n code !== 91 ||\n // Exit if there’s stuff before.\n self.previous !== null ||\n // 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\n function inside(code) {\n // Tab or space.\n if (code === -2 || code === 32) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n // Upper- and lower `x`.\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\n function close(code) {\n // `]`\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check({tokenize: spaceThenNonSpace}, ok, nok)\n }\n\n return nok(code)\n }\n}\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n var self = this\n\n return spaceFactory(effects, after, 'whitespace')\n\n function after(code) {\n return prefixSize(self.events, 'whitespace') &&\n code !== null &&\n !markdownLineEndingOrSpace(code)\n ? ok(code)\n : nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var combine = require('micromark/dist/util/combine-extensions')\nvar autolink = require('micromark-extension-gfm-autolink-literal')\nvar strikethrough = require('micromark-extension-gfm-strikethrough')\nvar table = require('micromark-extension-gfm-table')\nvar tasklist = require('micromark-extension-gfm-task-list-item')\n\nmodule.exports = create\n\nfunction create(options) {\n return combine([autolink, strikethrough(options), table, tasklist])\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\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\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\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-\\u2E4F\\u2E52\\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]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\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 === 'attentionSequence' &&\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 === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.forceVisible = exports.forceCheck = exports.lazyload = undefined;\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 _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _event = require('./utils/event');\n\nvar _scrollParent = require('./utils/scrollParent');\n\nvar _scrollParent2 = _interopRequireDefault(_scrollParent);\n\nvar _debounce = require('./utils/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _throttle = require('./utils/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 * react-lazyload\n */\n\n\nvar defaultBoundingClientRect = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0\n};\nvar LISTEN_FLAG = 'data-lazyload-listened';\nvar listeners = [];\nvar pending = [];\n\n// try to handle passive events\nvar passiveEventSupported = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveEventSupported = true;\n }\n });\n window.addEventListener('test', null, opts);\n} catch (e) {}\n// if they are supported, setup the optional params\n// IMPORTANT: FALSE doubles as the default CAPTURE value!\nvar passiveEvent = passiveEventSupported ? { capture: false, passive: true } : false;\n\n/**\n * Check if `component` is visible in overflow container `parent`\n * @param {node} component React component\n * @param {node} parent component's scroll parent\n * @return {bool}\n */\nvar checkOverflowVisible = function checkOverflowVisible(component, parent) {\n var node = component.ref;\n\n var parentTop = void 0;\n var parentLeft = void 0;\n var parentHeight = void 0;\n var parentWidth = void 0;\n\n try {\n var _parent$getBoundingCl = parent.getBoundingClientRect();\n\n parentTop = _parent$getBoundingCl.top;\n parentLeft = _parent$getBoundingCl.left;\n parentHeight = _parent$getBoundingCl.height;\n parentWidth = _parent$getBoundingCl.width;\n } catch (e) {\n parentTop = defaultBoundingClientRect.top;\n parentLeft = defaultBoundingClientRect.left;\n parentHeight = defaultBoundingClientRect.height;\n parentWidth = defaultBoundingClientRect.width;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowInnerWidth = window.innerWidth || document.documentElement.clientWidth;\n\n // calculate top and height of the intersection of the element's scrollParent and viewport\n var intersectionTop = Math.max(parentTop, 0); // intersection's top relative to viewport\n var intersectionLeft = Math.max(parentLeft, 0); // intersection's left relative to viewport\n var intersectionHeight = Math.min(windowInnerHeight, parentTop + parentHeight) - intersectionTop; // height\n var intersectionWidth = Math.min(windowInnerWidth, parentLeft + parentWidth) - intersectionLeft; // width\n\n // check whether the element is visible in the intersection\n var top = void 0;\n var left = void 0;\n var height = void 0;\n var width = void 0;\n\n try {\n var _node$getBoundingClie = node.getBoundingClientRect();\n\n top = _node$getBoundingClie.top;\n left = _node$getBoundingClie.left;\n height = _node$getBoundingClie.height;\n width = _node$getBoundingClie.width;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n left = defaultBoundingClientRect.left;\n height = defaultBoundingClientRect.height;\n width = defaultBoundingClientRect.width;\n }\n\n var offsetTop = top - intersectionTop; // element's top relative to intersection\n var offsetLeft = left - intersectionLeft; // element's left relative to intersection\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return offsetTop - offsets[0] <= intersectionHeight && offsetTop + height + offsets[1] >= 0 && offsetLeft - offsets[0] <= intersectionWidth && offsetLeft + width + offsets[1] >= 0;\n};\n\n/**\n * Check if `component` is visible in document\n * @param {node} component React component\n * @return {bool}\n */\nvar checkNormalVisible = function checkNormalVisible(component) {\n var node = component.ref;\n\n // If this element is hidden by css rules somehow, it's definitely invisible\n if (!(node.offsetWidth || node.offsetHeight || node.getClientRects().length)) return false;\n\n var top = void 0;\n var elementHeight = void 0;\n\n try {\n var _node$getBoundingClie2 = node.getBoundingClientRect();\n\n top = _node$getBoundingClie2.top;\n elementHeight = _node$getBoundingClie2.height;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n elementHeight = defaultBoundingClientRect.height;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return top - offsets[0] <= windowInnerHeight && top + elementHeight + offsets[1] >= 0;\n};\n\n/**\n * Detect if element is visible in viewport, if so, set `visible` state to true.\n * If `once` prop is provided true, remove component as listener after checkVisible\n *\n * @param {React} component React component that respond to scroll and resize\n */\nvar checkVisible = function checkVisible(component) {\n var node = component.ref;\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n var parent = (0, _scrollParent2.default)(node);\n var isOverflow = component.props.overflow && parent !== node.ownerDocument && parent !== document && parent !== document.documentElement;\n var visible = isOverflow ? checkOverflowVisible(component, parent) : checkNormalVisible(component);\n if (visible) {\n // Avoid extra render if previously is visible\n if (!component.visible) {\n if (component.props.once) {\n pending.push(component);\n }\n\n component.visible = true;\n component.forceUpdate();\n }\n } else if (!(component.props.once && component.visible)) {\n component.visible = false;\n if (component.props.unmountIfInvisible) {\n component.forceUpdate();\n }\n }\n};\n\nvar purgePending = function purgePending() {\n pending.forEach(function (component) {\n var index = listeners.indexOf(component);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n });\n\n pending = [];\n};\n\nvar lazyLoadHandler = function lazyLoadHandler() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n checkVisible(listener);\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n/**\n * Forces the component to display regardless of whether the element is visible in the viewport.\n */\nvar forceVisible = function forceVisible() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n listener.visible = true;\n listener.forceUpdate();\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n// Depending on component's props\nvar delayType = void 0;\nvar finalLazyLoadHandler = null;\n\nvar isString = function isString(string) {\n return typeof string === 'string';\n};\n\nvar LazyLoad = function (_Component) {\n _inherits(LazyLoad, _Component);\n\n function LazyLoad(props) {\n _classCallCheck(this, LazyLoad);\n\n var _this = _possibleConstructorReturn(this, (LazyLoad.__proto__ || Object.getPrototypeOf(LazyLoad)).call(this, props));\n\n _this.visible = false;\n _this.setRef = _this.setRef.bind(_this);\n return _this;\n }\n\n _createClass(LazyLoad, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // It's unlikely to change delay type on the fly, this is mainly\n // designed for tests\n var scrollport = window;\n var scrollContainer = this.props.scrollContainer;\n\n if (scrollContainer) {\n if (isString(scrollContainer)) {\n scrollport = scrollport.document.querySelector(scrollContainer);\n }\n }\n var needResetFinalLazyLoadHandler = this.props.debounce !== undefined && delayType === 'throttle' || delayType === 'debounce' && this.props.debounce === undefined;\n\n if (needResetFinalLazyLoadHandler) {\n (0, _event.off)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n finalLazyLoadHandler = null;\n }\n\n if (!finalLazyLoadHandler) {\n if (this.props.debounce !== undefined) {\n finalLazyLoadHandler = (0, _debounce2.default)(lazyLoadHandler, typeof this.props.debounce === 'number' ? this.props.debounce : 300);\n delayType = 'debounce';\n } else if (this.props.throttle !== undefined) {\n finalLazyLoadHandler = (0, _throttle2.default)(lazyLoadHandler, typeof this.props.throttle === 'number' ? this.props.throttle : 300);\n delayType = 'throttle';\n } else {\n finalLazyLoadHandler = lazyLoadHandler;\n }\n }\n\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = 1 + +parent.getAttribute(LISTEN_FLAG);\n if (listenerCount === 1) {\n parent.addEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n }\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n } else if (listeners.length === 0 || needResetFinalLazyLoadHandler) {\n var _props = this.props,\n scroll = _props.scroll,\n resize = _props.resize;\n\n\n if (scroll) {\n (0, _event.on)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n\n if (resize) {\n (0, _event.on)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n }\n }\n\n listeners.push(this);\n checkVisible(this);\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return this.visible;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(this.ref);\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = +parent.getAttribute(LISTEN_FLAG) - 1;\n if (listenerCount === 0) {\n parent.removeEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n parent.removeAttribute(LISTEN_FLAG);\n } else {\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n }\n }\n\n var index = listeners.indexOf(this);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length === 0 && typeof window !== 'undefined') {\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n }\n }, {\n key: 'setRef',\n value: function setRef(element) {\n if (element) {\n this.ref = element;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n height = _props2.height,\n children = _props2.children,\n placeholder = _props2.placeholder,\n className = _props2.className,\n classNamePrefix = _props2.classNamePrefix,\n style = _props2.style;\n\n\n return _react2.default.createElement(\n 'div',\n { className: classNamePrefix + '-wrapper ' + className, ref: this.setRef, style: style },\n this.visible ? children : placeholder ? placeholder : _react2.default.createElement('div', {\n style: { height: height },\n className: classNamePrefix + '-placeholder'\n })\n );\n }\n }]);\n\n return LazyLoad;\n}(_react.Component);\n\nLazyLoad.propTypes = {\n className: _propTypes2.default.string,\n classNamePrefix: _propTypes2.default.string,\n once: _propTypes2.default.bool,\n height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n offset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),\n overflow: _propTypes2.default.bool,\n resize: _propTypes2.default.bool,\n scroll: _propTypes2.default.bool,\n children: _propTypes2.default.node,\n throttle: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n debounce: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n placeholder: _propTypes2.default.node,\n scrollContainer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n unmountIfInvisible: _propTypes2.default.bool,\n style: _propTypes2.default.object\n};\n\nLazyLoad.defaultProps = {\n className: '',\n classNamePrefix: 'lazyload',\n once: false,\n offset: 0,\n overflow: false,\n resize: false,\n scroll: true,\n unmountIfInvisible: false\n};\n\nvar getDisplayName = function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nvar decorator = function decorator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function lazyload(WrappedComponent) {\n return function (_Component2) {\n _inherits(LazyLoadDecorated, _Component2);\n\n function LazyLoadDecorated() {\n _classCallCheck(this, LazyLoadDecorated);\n\n var _this2 = _possibleConstructorReturn(this, (LazyLoadDecorated.__proto__ || Object.getPrototypeOf(LazyLoadDecorated)).call(this));\n\n _this2.displayName = 'LazyLoad' + getDisplayName(WrappedComponent);\n return _this2;\n }\n\n _createClass(LazyLoadDecorated, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n LazyLoad,\n options,\n _react2.default.createElement(WrappedComponent, this.props)\n );\n }\n }]);\n\n return LazyLoadDecorated;\n }(_react.Component);\n };\n};\n\nexports.lazyload = decorator;\nexports.default = LazyLoad;\nexports.forceCheck = lazyLoadHandler;\nexports.forceVisible = forceVisible;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = debounce;\nfunction debounce(func, wait, immediate) {\n var timeout = void 0;\n var args = void 0;\n var context = void 0;\n var timestamp = void 0;\n var result = void 0;\n\n var later = function later() {\n var last = +new Date() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) {\n context = null;\n args = null;\n }\n }\n }\n };\n\n return function debounced() {\n context = this;\n args = arguments;\n timestamp = +new Date();\n\n var callNow = immediate && !timeout;\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n\n if (callNow) {\n result = func.apply(context, args);\n context = null;\n args = null;\n }\n\n return result;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.on = on;\nexports.off = off;\nfunction on(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.addEventListener) {\n el.addEventListener(eventName, callback, opts);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\" + eventName, function (e) {\n callback.call(el, e || window.event);\n });\n }\n}\n\nfunction off(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.removeEventListener) {\n el.removeEventListener(eventName, callback, opts);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + eventName, callback);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @fileOverview Find scroll parent\n */\n\nexports.default = function (node) {\n if (!(node instanceof HTMLElement)) {\n return document.documentElement;\n }\n\n var excludeStaticParent = node.style.position === 'absolute';\n var overflowRegex = /(scroll|auto)/;\n var parent = node;\n\n while (parent) {\n if (!parent.parentNode) {\n return node.ownerDocument || document.documentElement;\n }\n\n var style = window.getComputedStyle(parent);\n var position = style.position;\n var overflow = style.overflow;\n var overflowX = style['overflow-x'];\n var overflowY = style['overflow-y'];\n\n if (position === 'static' && excludeStaticParent) {\n parent = parent.parentNode;\n continue;\n }\n\n if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return node.ownerDocument || node.documentElement || document.documentElement;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = throttle;\n/*eslint-disable */\nfunction throttle(fn, threshhold, scope) {\n threshhold || (threshhold = 250);\n var last, deferTimer;\n return function () {\n var context = scope || this;\n\n var now = +new Date(),\n args = arguments;\n if (last && now < last + threshhold) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n}","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\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 propTypes = {\n active: _propTypes2.default.bool,\n 'aria-label': _propTypes2.default.string,\n block: _propTypes2.default.bool,\n color: _propTypes2.default.string,\n disabled: _propTypes2.default.bool,\n outline: _propTypes2.default.bool,\n tag: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n innerRef: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func, _propTypes2.default.string]),\n onClick: _propTypes2.default.func,\n size: _propTypes2.default.string,\n children: _propTypes2.default.node,\n className: _propTypes2.default.string,\n cssModule: _propTypes2.default.object,\n close: _propTypes2.default.bool\n};\n\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\n\nvar Button = function (_React$Component) {\n _inherits(Button, _React$Component);\n\n function Button(props) {\n _classCallCheck(this, Button);\n\n var _this = _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).call(this, props));\n\n _this.onClick = _this.onClick.bind(_this);\n return _this;\n }\n\n _createClass(Button, [{\n key: 'onClick',\n value: function onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n active = _props.active,\n ariaLabel = _props['aria-label'],\n block = _props.block,\n className = _props.className,\n close = _props.close,\n cssModule = _props.cssModule,\n color = _props.color,\n outline = _props.outline,\n size = _props.size,\n Tag = _props.tag,\n innerRef = _props.innerRef,\n attributes = _objectWithoutProperties(_props, ['active', 'aria-label', 'block', 'className', 'close', 'cssModule', 'color', 'outline', 'size', 'tag', 'innerRef']);\n\n if (close && typeof attributes.children === 'undefined') {\n attributes.children = _react2.default.createElement(\n 'span',\n { 'aria-hidden': true },\n '\\xD7'\n );\n }\n\n var btnOutlineColor = 'btn' + (outline ? '-outline' : '') + '-' + color;\n\n var classes = (0, _utils.mapToCssModules)((0, _classnames2.default)(className, { close: close }, close || 'btn', close || btnOutlineColor, size ? 'btn-' + size : false, block ? 'btn-block' : false, { active: active, disabled: this.props.disabled }), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n var defaultAriaLabel = close ? 'Close' : null;\n\n return _react2.default.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: this.onClick,\n 'aria-label': ariaLabel || defaultAriaLabel\n }));\n }\n }]);\n\n return Button;\n}(_react2.default.Component);\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nexports.default = Button;","'use strict'\n\nvar syntax = require('micromark-extension-gfm')\nvar fromMarkdown = require('mdast-util-gfm/from-markdown')\nvar toMarkdown = require('mdast-util-gfm/to-markdown')\n\nvar warningIssued\n\nmodule.exports = gfm\n\nfunction gfm(options) {\n var data = this.data()\n\n /* istanbul ignore next - old remark. */\n if (\n !warningIssued &&\n ((this.Parser &&\n this.Parser.prototype &&\n this.Parser.prototype.blockTokenizers) ||\n (this.Compiler &&\n this.Compiler.prototype &&\n this.Compiler.prototype.visitors))\n ) {\n warningIssued = true\n console.warn(\n '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin'\n )\n }\n\n add('micromarkExtensions', syntax(options))\n add('fromMarkdownExtensions', fromMarkdown)\n add('toMarkdownExtensions', toMarkdown(options))\n\n function add(field, value) {\n /* istanbul ignore if - other extensions. */\n if (data[field]) data[field].push(value)\n else data[field] = [value]\n }\n}\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(error, tree, file) {\n if (error) {\n next(error)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n if ('value' in ctx.file) {\n ctx.file.value = result\n }\n\n ctx.file.contents = result\n } else {\n ctx.file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var freezeIndex = -1\n var frozen\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var index = -1\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n\n if (values[1] === false) {\n continue\n }\n\n if (values[1] === true) {\n values[1] = undefined\n }\n\n transformer = values[0].apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var index = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index]\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var result\n var complete\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(error, tree) {\n complete = true\n result = tree\n bail(error)\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(error) {\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var file\n var complete\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}"],"names":["createSvgIcon","React","d","Avatar","props","ref","alt","childrenProp","children","classes","className","_props$component","component","Component","imgProps","sizes","src","srcSet","_props$variant","variant","other","_objectWithoutProperties","loaded","_ref","_React$useState","setLoaded","active","image","Image","onload","onerror","useLoaded","hasImg","hasImgNotFailing","_extends","img","Person","fallback","clsx","root","system","colorDefault","withStyles","theme","position","display","alignItems","justifyContent","flexShrink","width","height","fontFamily","typography","fontSize","pxToRem","lineHeight","borderRadius","overflow","userSelect","color","palette","background","default","backgroundColor","type","grey","circle","circular","rounded","shape","square","textAlign","objectFit","textIndent","name","Button","_props$color","_props$disabled","disabled","_props$disableElevati","disableElevation","_props$disableFocusRi","disableFocusRipple","endIconProp","endIcon","focusVisibleClassName","_props$fullWidth","fullWidth","_props$size","size","startIconProp","startIcon","_props$type","concat","capitalize","ButtonBase","colorInherit","focusRipple","focusVisible","label","button","boxSizing","minWidth","padding","text","primary","transition","transitions","create","duration","short","textDecoration","alpha","action","hoverOpacity","textPrimary","main","textSecondary","secondary","outlined","border","disabledBackground","outlinedPrimary","outlinedSecondary","contained","getContrastText","boxShadow","shadows","A100","containedPrimary","contrastText","dark","containedSecondary","borderColor","textSizeSmall","textSizeLarge","outlinedSizeSmall","outlinedSizeLarge","containedSizeSmall","containedSizeLarge","sizeSmall","sizeLarge","marginRight","marginLeft","iconSizeSmall","iconSizeMedium","iconSizeLarge","Card","_props$raised","raised","Paper","elevation","Collapse","collapsedHeight","_props$collapsedSize","collapsedSize","collapsedSizeProp","_props$disableStrictM","disableStrictModeCompat","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","_props$timeout","timeout","_props$TransitionComp","TransitionComponent","Transition","useTheme","timer","wrapperRef","autoTransitionDuration","clearTimeout","current","enableStrictModeCompat","unstable_strictMode","nodeRef","handleRef","useForkRef","undefined","normalizedTransitionCallback","callback","nodeOrAppearing","maybeAppearing","_ref2","_slicedToArray","node","isAppearing","handleEnter","handleEntering","wrapperHeight","clientHeight","transitionDuration","getTransitionProps","mode","duration2","getAutoHeightDuration","handleEntered","handleExit","handleExited","handleExiting","addEndListener","nodeOrNext","maybeNext","next","setTimeout","state","childProps","container","entered","hidden","minHeight","wrapper","wrapperInner","muiSupportAuto","visibility","getScale","value","Math","pow","styles","entering","opacity","transform","Grow","autoTimeout","foreignRef","reflow","_getTransitionProps","delay","join","_getTransitionProps2","appear","_props$square","_props$elevation","elevations","forEach","shadow","index","paper","divider","useEnhancedEffect","window","Portal","_props$disablePortal","disablePortal","onRendered","mountNode","setMountNode","ReactDOM","getContainer","document","body","setRef","tablelvl2","defaultComponent","TableBody","Tablelvl2Context","role","TableCell","_props$align","align","paddingProp","scopeProp","scope","sizeProp","sortDirection","variantProp","table","TableContext","isHeadCell","ariaSort","stickyHeader","body2","verticalAlign","borderBottom","lighten","darken","head","fontWeight","fontWeightMedium","footer","paddingRight","paddingLeft","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","flexDirection","alignJustify","top","left","zIndex","TableHead","TableRow","_props$hover","hover","_props$selected","selected","outline","selectedOpacity","Table","_props$padding","_props$stickyHeader","borderCollapse","borderSpacing","spacing","captionSide","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","i","length","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","_getStyleComputedProp","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","isOffsetContainer","element1root","getScroll","upperSide","arguments","html","scrollingElement","getBordersSize","axis","sideA","sideB","parseFloat","getSize","computedStyle","max","parseInt","getWindowSizes","getClientRect","offsets","getBoundingClientRect","rect","scrollTop","scrollLeft","bottom","right","e","result","clientWidth","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","getOuterSizes","x","marginBottom","y","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","obj","warn","enabled","update","this","isDestroyed","options","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","instance","transformProp","popperStyles","priority","escapeWithReference","min","floor","opSide","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","defineProperty","_data$offsets$arrow","round","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","hide","attributes","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles","setAttribute","modifierOptions","Defaults","Popper","requestAnimationFrame","_this","bind","jquery","onLoad","Utils","global","PopperUtils","getAnchorEl","anchorEl","defaultPopperOptions","_props$keepMounted","keepMounted","open","_props$placement","initialPlacement","_props$popperOptions","popperOptions","popperRefProp","popperRef","_props$transition","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","exited","setExited","rtlPlacement","direction","flipPlacement","_React$useState2","setPlacement","handleOpen","handlePopperUpdate","PopperJs","preventOverflow","createChainedFunction","handleClose","TransitionProps","hystersisOpen","hystersisTimer","Tooltip","_props$arrow","_props$disableFocusLi","disableFocusListener","_props$disableHoverLi","disableHoverListener","_props$disableTouchLi","disableTouchListener","_props$enterDelay","enterDelay","_props$enterNextDelay","enterNextDelay","_props$enterTouchDela","enterTouchDelay","idProp","id","_props$interactive","interactive","_props$leaveDelay","leaveDelay","_props$leaveTouchDela","leaveTouchDelay","onClose","onOpen","openProp","_props$PopperComponen","PopperComponent","PopperProps","title","childNode","setChildNode","arrowRef","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","_useControlled","useControlled","controlled","_useControlled2","openState","setOpenState","useId","forward","childrenProps","onMouseOver","persist","_useIsFocusVisible","useIsFocusVisible","isFocusVisible","onBlurVisible","focusVisibleRef","_React$useState3","childIsFocusVisible","setChildIsFocusVisible","handleFocus","currentTarget","onFocus","shortest","handleLeave","onBlur","onMouseLeave","detectTouchStart","onTouchStart","handleUseRef","handleFocusRef","handleOwnRef","shouldShowNativeTitle","interactiveWrapperListeners","onTouchEnd","mergedPopperProps","deepmerge","Boolean","popperInteractive","popperArrow","placementInner","TransitionPropsInner","shorter","tooltip","touch","tooltipArrow","pointerEvents","transformOrigin","common","white","maxWidth","wordWrap","margin","content","fontWeightRegular","tooltipPlacementLeft","_defineProperty","breakpoints","up","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","useThemeWithoutDefault","defaultTheme","_props$style","transitionDelay","_interopRequireDefault","require","_interopRequireWildcard","exports","_default","createElement","enumerable","get","_utils","module","err","source","character","String","count","Error","hasOwn","hasOwnProperty","toStr","gOPD","getOwnPropertyDescriptor","isArray","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","configurable","newValue","writable","getProperty","extend","copy","copyIsArray","clone","deep","isBuffer","getPrototypeOf","repeat","cells","columnIndex","columnLength","largest","cell","lines","line","before","after","code","settings","delimiterStart","delimiterEnd","alignDelimiters","alignments","stringLength","defaultStringLength","rowIndex","rowLength","cellMatrix","sizeMatrix","row","longestCellByColumn","mostCellsPerRow","toAlignment","l","colon","r","c","dash","splice","space","verticalBar","trailingWhitespace","lineFeed","C","L","R","charCodeAt","visitWithParents","ast","listNode","parents","depth","child","ordered","tree","schema","exec","handlerFactory","pairs","pair","handler","subhandler","nodes","lastIndex","apply","input","unshift","toExpression","toFunction","toPairs","visit","convert","escape","ignored","ignore","grandparent","RegExp","string","TypeError","visitParents","CONTINUE","SKIP","EXIT","visitor","is","factory","tagName","displayName","subresult","grandparents","toResult","encoding","config","extensions","extension","configure","transforms","canContainEols","enter","autolink","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","buffer","codeFencedFenceMeta","codeIndented","codeText","codeTextData","codeFlowValue","definition","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","htmlFlowData","htmlText","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","list","onenterlistordered","listUnordered","paragraph","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","exit","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","compile","events","tokenStack","listStack","context","stack","resume","setData","getData","prepareList","pop","own","assign","sliceSerialize","stringifyPosition","point","column","tailIndex","lineIndex","tailEvent","firstBlankLineIndex","atMarker","containerBalance","listSpread","_spread","and","token","close","lang","meta","identifier","normalizeIdentifier","url","siblings","tail","referenceType","fragment","safeFromInt","decode","spread","checked","compiler","postprocess","parser","write","preprocessor","ccount","findAndReplace","unicodePunctuation","unicodeWhitespace","enterLiteralAutolinkValue","findUrl","$0","protocol","domain","path","parts","previous","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","splitUrl","findEmail","atext","email","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","inConstruct","notInConstruct","unsafe","strikethrough","phrasing","handleDelete","_","handlers","delete","peek","enterCell","$1","_align","tableData","tableHeader","tableRow","defaultInlineCode","markdownTable","tableCellPadding","tablePipeAlign","around","atBreak","serializeData","subexit","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","inlineCode","matrix","exitCheck","taskListCheckValueChecked","taskListCheckValueUnchecked","firstParaghraph","shift","defaultListItem","autolinkLiteral","taskListItem","base","patternCompile","pattern","expression","sequence","bullet","checkBullet","listItemIndent","checkListItemIndent","incrementListMarker","ceil","indentLines","flow","blank","marker","results","handle","between","Number","safeOptions","eol","one","_compiled","all","values","asciiAlpha","asciiAlphanumeric","asciiControl","markdownLineEnding","www","tokenize","effects","ok","nok","consume","w2","w3","dot","partial","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","done","punctuationContinuation","punctuation","balance","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","inside","wwwAutolink","self","previousWww","attempt","httpAutolink","previousHttp","t1","t2","p","s","slash1","slash2","emailAutolink","hasDot","gfmAtext","previousEmail","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","_balanced","single","singleTilde","tokenizer","more","classifyCharacter","_open","_close","resolveAll","nextEvents","shallow","chunkedSplice","constructs","insideSpan","null","removeRemainingSequences","seenDelimiter","hasDash","tableHeaderCount","cellDividerHead","inCellContentHead","cellBreakHead","setextUnderlineMini","createSpace","rowStartDelimiter","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","tableContinue","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","tableBodyContinue","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","contentStart","contentEnd","cellStart","contentType","interruptible","whitespace","markdownLineEndingOrSpace","spaceFactory","prefixSize","tasklistCheck","_gfmTasklistFirstContentOfListItem","spaceThenNonSpace","combine","tasklist","regexCheck","asciiAtext","asciiDigit","asciiHexDigit","asciiPunctuation","unicodePunctuationRegex","fromCharCode","text$1","attention","headingAtx","labelEnd","labelStartImage","labelStartLink","setextUnderline","contentInitial","flowInitial","resolver","disable","factorySpace","lineStart","partialBlankLine","inspectResult","childFlow","childToken","continued","inspectConstruct","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","containerConstruct","inspectFlowEnd","_closeFlow","lazy","lazyFlowConstruct","inspectLazy","flowEnd","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","now","_tokenizer","continueFlow","documentAfterPeek","defineSkip","sliceStream","initial","afterConstruct","initializeFactory","createResolver","field","notText","resolveAllLineSuffixes","extraResolver","chunks","chunk","bufferIndex","tabs","eventIndex","_index","_bufferIndex","combineExtensions","createTokenizer","miniflat","defined","initializer","from","subtokenize","atCarriageReturn","startPosition","endPosition","chunkedPush","movePoint","group","openingSequence","closingSequence","use","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","markdownSpace","_container","decodeEntity","_interopDefaultLegacy","decodeEntity__default","numeric","closingFenceConstruct","closingSequenceStart","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","info","infoAfter","contentContinue","indentedContentConstruct","afterPrefix","gap","tailExitIndex","headEnterIndex","continuationConstruct","prefixed","factoryDestination","factoryLabel","factoryWhitespace","factoryTitle","labelAfter","titleConstruct","literalType","literalMarkerType","rawType","stringType","limit","Infinity","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","atFirstTitleBreak","atTitleBreak","titleEscape","seen","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","resolveTo","returnState","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStart","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","media","_used","destinationAfter","afterLabel","sizeChunks","initialSize","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","items","remove","parameters","chunkStart","hook","existing","add","serializeChunks","sliceChunks","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","chunkIndex","go","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","regex","atTab","object","view","startIndex","startBufferIndex","endIndex","endBufferIndex","subcontent","stream","adjust","startPositions","childEvents","jumps","gaps","isInFirstContentOfListItem","otherIndex","otherEvent","subevents","_movePreviousLineEndings","semicolon","characters","char","entity","innerHTML","textContent","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react","_react2","_propTypes2","_event","_scrollParent2","_debounce2","_throttle2","__esModule","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","defaultBoundingClientRect","LISTEN_FLAG","listeners","pending","passiveEventSupported","opts","passiveEvent","capture","checkVisible","HTMLElement","visible","parentTop","parentLeft","parentHeight","parentWidth","_parent$getBoundingCl","windowInnerHeight","windowInnerWidth","intersectionTop","intersectionLeft","intersectionHeight","intersectionWidth","_node$getBoundingClie","offsetTop","offsetLeft","checkOverflowVisible","getClientRects","elementHeight","_node$getBoundingClie2","checkNormalVisible","once","forceUpdate","unmountIfInvisible","purgePending","lazyLoadHandler","listener","delayType","finalLazyLoadHandler","LazyLoad","_Component","scrollport","scrollContainer","needResetFinalLazyLoadHandler","off","throttle","getAttribute","listenerCount","_props","scroll","resize","on","_props2","placeholder","classNamePrefix","propTypes","bool","oneOfType","number","arrayOf","defaultProps","func","wait","immediate","args","timestamp","later","last","Date","callNow","eventName","attachEvent","detachEvent","excludeStaticParent","overflowRegex","threshhold","deferTimer","xtend","ReactIs","astToReact","renderer","renderers","pos","isValidElementType","nodeProps","isSimpleRenderer","Fragment","sourcePos","flattenPosition","rawSourcePos","sourcePosition","includeNodeIndex","parentChildCount","definitions","assignDefined","nodeKey","level","loose","listItemLoose","listLoose","array","unwrapParagraphs","getListItemChildren","language","inline","linkTarget","href","transformLinkUri","transformImageUri","columnAlignment","isHeader","tag","isBlock","allowDangerousHtml","escapeHtml","skipHtml","parsedChildren","Children","toArray","cloneElement","mergeNodeChildren","getNodeProps","attrs","ifNotMatch","allow","ofType","types","includes","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","fromIndex","toIndex","extracted","indent","virtual","unified","parse","PropTypes","addListMetadata","naiveHtml","disallowNode","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","symbols","allTypes","ReactMarkdown","allowedTypes","disallowedTypes","processor","plugins","runSync","renderProps","removalMethod","unwrapDisallowed","allowNode","renderHtml","hasHtmlParser","astPlugins","identity","HtmlParser","determineAstToReactTransforms","oneOf","supportsStringRender","SimpleRenderer","getCoreProps","break","blockquote","linkReference","imageReference","tableHead","tableBody","coreProps","checkbox","readOnly","dangerous","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","Symbol","protocols","uri","first","wrap","for","f","g","h","k","m","q","t","w","z","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","typeOf","_classnames2","block","innerRef","onClick","cssModule","_React$Component","preventDefault","ariaLabel","Tag","btnOutlineColor","mapToCssModules","defaultAriaLabel","warningIssued","syntax","fromMarkdown","toMarkdown","Parser","blockTokenizers","Compiler","visitors","console","doc","cache","res","num","substr","trough","fns","middleware","invoked","params","error","bail","plain","vfile","frozen","attachers","transformers","namespace","freezeIndex","assertUnfrozen","freeze","addPlugin","addList","addPreset","plugin","entry","file","assertParser","newable","stringify","assertCompiler","assertNode","run","complete","assertDone","process","processSync","destination","transformer","cb","executor","reject","pipeline","ctx","contents","asyncName","typeFactory","tests","checks","any","anyFactory","allFactory","VMessagePrototype","VMessage","proto","reason","origin","location","parseOrigin","message","ruleId","fatal","proc","VFile","messages","history","cwd","assertPart","part","sep","assertNonEmpty","assertPath","set","dirname","basename","extname","stem","fail","JSON","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","normalize","_toArray"],"sourceRoot":""}