-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcomponent---src-templates-post-jsx-82fdf676ca71ba1e1bc2.js.map
1 lines (1 loc) · 274 KB
/
component---src-templates-post-jsx-82fdf676ca71ba1e1bc2.js.map
1
{"version":3,"file":"component---src-templates-post-jsx-82fdf676ca71ba1e1bc2.js","mappings":"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","sources":["webpack://gatsby-starter-hoodie/./src/components/Bio/index.jsx","webpack://gatsby-starter-hoodie/./src/components/TagList/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Header/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Series/index.jsx","webpack://gatsby-starter-hoodie/./src/hooks/useOffsetTop.jsx","webpack://gatsby-starter-hoodie/./src/hooks/useScroll.jsx","webpack://gatsby-starter-hoodie/./src/utils/getElmentOffset.js","webpack://gatsby-starter-hoodie/./src/components/RevealOnScroll/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/Toc/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/StyledMarkdown/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/CommonStyle.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/DarkMode.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/LightMode.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/PrismTheme/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/Body/index.jsx","webpack://gatsby-starter-hoodie/./node_modules/utterances-react-component/dist/index.es.js","webpack://gatsby-starter-hoodie/./node_modules/react-md-spinner/dist/react-md-spinner.esm.js","webpack://gatsby-starter-hoodie/./src/components/Article/Footer/index.jsx","webpack://gatsby-starter-hoodie/./src/components/Article/index.jsx","webpack://gatsby-starter-hoodie/./src/templates/Post.jsx","webpack://gatsby-starter-hoodie/./node_modules/lodash.throttle/index.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/_baseFindIndex.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/findIndex.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/replace.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/toFinite.js","webpack://gatsby-starter-hoodie/./node_modules/lodash/toInteger.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Button.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Element.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/components/Link.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/index.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/Helpers.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/cancel-events.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-element.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-events.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-link.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/scroller.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/smooth.js","webpack://gatsby-starter-hoodie/./node_modules/react-scroll/modules/mixins/utils.js","webpack://gatsby-starter-hoodie/./node_modules/stylis/stylis.js"],"sourcesContent":["import React from \"react\"\nimport styled from \"styled-components\"\n\nimport {\n FaGithub,\n FaKaggle,\n FaFacebook,\n FaLinkedin,\n FaInstagram,\n FaLink,\n FaEnvelope,\n} from \"react-icons/fa\"\n\nimport { siteUrl, description, author, links } from \"../../../blog-config\"\n\nconst BioWrapper = styled.div`\n display: flex;\n align-items: center;\n\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst profileImageRoot =\n typeof window !== \"undefined\" && window.location.host === \"localhost:8000\"\n ? \"http://localhost:8000\"\n : siteUrl\n\nconst Profile = styled.div`\n flex: 0 0 auto;\n margin-right: 16px;\n width: 128px;\n height: 128px;\n border-radius: 999px;\n background-image: url(${profileImageRoot}/profile.png);\n background-size: cover;\n background-position: center;\n`\n\nconst Author = styled.div`\n margin-bottom: 4.8px;\n font-size: 24px;\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Description = styled.div`\n margin-bottom: 11.2px;\n line-height: 1.5;\n font-size: 16px;\n color: ${props => props.theme.colors.secondaryText};\n`\n\nconst LinksWrapper = styled.div`\n & a {\n margin-right: 9.6px;\n }\n\n & svg {\n width: 25.6px;\n height: 25.6px;\n cursor: pointer;\n }\n\n & svg path {\n fill: ${props => props.theme.colors.icon};\n transition: fill 0.3s;\n }\n\n & a:hover svg path {\n fill: ${props => props.theme.colors.text};\n }\n`\n\nconst Link = ({ link, children }) => {\n if (!link) return null\n return (\n <a href={link} target=\"_blank\" rel=\"noreferrer\">\n {children}\n </a>\n )\n}\n\nconst Bio = () => {\n const { github, kaggle, instagram, facebook, linkedIn, email, etc } = links\n\n return (\n <BioWrapper id=\"bio\">\n <Profile />\n <div>\n <Author>@{author}</Author>\n <Description>{description}</Description>\n <LinksWrapper>\n <Link link={github}>\n <FaGithub />\n </Link>\n <Link link={kaggle}>\n <FaKaggle />\n </Link>\n <Link link={instagram}>\n <FaInstagram />\n </Link>\n <Link link={facebook}>\n <FaFacebook />\n </Link>\n <Link link={linkedIn}>\n <FaLinkedin />\n </Link>\n <Link link={email}>\n <FaEnvelope />\n </Link>\n <Link link={etc}>\n <FaLink />\n </Link>\n </LinksWrapper>\n </div>\n </BioWrapper>\n )\n}\n\nexport default Bio\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { Link } from \"gatsby\"\n\nconst TagListWrapper = styled.div`\n margin-bottom: 16px;\n word-break: break-all;\n`\n\nconst TagLink = styled.div`\n display: inline-block;\n padding: 9.6px 11.2px;\n margin-right: 8px;\n margin-bottom: 8px;\n border-radius: 50px;\n background-color: ${props =>\n props.selected\n ? props.theme.colors.selectedTagBackground\n : props.theme.colors.tagBackground};\n color: ${props =>\n props.selected\n ? props.theme.colors.selectedTagText\n : props.theme.colors.tagText};\n text-decoration: none;\n font-size: 14.4px;\n transition: all 0.2s;\n\n &:hover {\n background-color: ${props =>\n props.selected\n ? props.theme.colors.hoveredSelectedTagBackground\n : props.theme.colors.hoveredTagBackground};\n }\n`\n\nconst spaceToDash = text => {\n return text.replace(/\\s+/g, \"-\")\n}\n\nconst TagList = ({ tagList, count, selected }) => {\n if (!tagList) return null\n\n if (!count) {\n return (\n <TagListWrapper>\n {tagList.map((tag, i) => (\n <Link key={JSON.stringify({ tag, i })} to={`/tags?q=${tag}`}>\n <TagLink>{spaceToDash(tag)}</TagLink>\n </Link>\n ))}\n </TagListWrapper>\n )\n }\n\n return (\n <TagListWrapper>\n {tagList.map((tag, i) => (\n <Link\n key={JSON.stringify({ tag, i })}\n to={\n selected === tag.fieldValue ? \"/tags\" : `/tags?q=${tag.fieldValue}`\n }\n >\n <TagLink selected={tag.fieldValue === selected}>\n {spaceToDash(tag.fieldValue)} ({tag.totalCount})\n </TagLink>\n </Link>\n ))}\n </TagListWrapper>\n )\n}\n\nexport default TagList\n","import React from \"react\"\nimport styled from \"styled-components\"\n\nimport { author } from \"../../../../blog-config\"\n\nimport Divider from \"components/Divider\"\nimport TagList from \"components/TagList\"\n\nconst Wrapper = styled.div`\n margin-top: 32px;\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst ArticleTitle = styled.h1`\n margin-bottom: 25.6px;\n line-height: 1.2;\n font-size: 44.8px;\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Information = styled.div`\n margin-bottom: 32px;\n font-size: 16px;\n`\n\nconst Author = styled.span`\n font-weight: 700;\n color: ${props => props.theme.colors.text};\n`\n\nconst Date = styled.span`\n font-weight: 300;\n color: ${props => props.theme.colors.secondaryText};\n`\n\nconst Header = ({ title, date, tags, minToRead }) => {\n return (\n <Wrapper>\n <ArticleTitle> {title} </ArticleTitle>\n <Information>\n <Author> @{author} </Author>\n <Date>· {date} </Date>\n <Date>· {minToRead} min read </Date>\n </Information>\n {tags && <TagList tagList={tags} />}\n <Divider mt=\"0\" />\n </Wrapper>\n )\n}\n\nexport default Header\n","import React, { useState, useMemo } from \"react\"\nimport _ from \"lodash\"\nimport styled from \"styled-components\"\nimport { Link } from \"gatsby\"\n\nimport { AiOutlineArrowLeft } from \"react-icons/ai\"\n\nconst SeriesWrapper = styled.div`\n margin-bottom: 32px;\n padding: 16px;\n background-color: ${props => props.theme.colors.seriesBackground};\n`\n\nconst SeriesHeader = styled.h2`\n margin-bottom: 16px;\n font-size: 16px;\n font-weight: bold;\n color: ${props => props.theme.colors.text};\n\n & > span {\n font-weight: normal;\n color: ${props => props.theme.colors.tertiaryText};\n }\n\n & > a {\n color: inherit;\n text-decoration: none;\n }\n\n & > a:hover {\n text-decoration: underline;\n }\n`\n\nconst PostWrapper = styled.ul``\n\nconst Post = styled.li`\n position: relative;\n font-size: 12.8px;\n color: ${props =>\n props.currentPost\n ? props.theme.colors.text\n : props.theme.colors.tertiaryText};\n\n &:not(:last-child) {\n margin-bottom: 9.6px;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n transition: color 0.3s;\n }\n\n & > a:hover {\n color: ${props => props.theme.colors.text};\n }\n\n & > svg {\n position: absolute;\n margin-left: 5px;\n }\n`\n\nconst ViewMore = styled.div`\n margin-top: 15px;\n font-size: 14.4px;\n text-align: center;\n color: ${props => props.theme.colors.tertiaryText};\n cursor: pointer;\n transition: color 0.3s;\n\n &:hover {\n color: ${props => props.theme.colors.text};\n }\n`\n\nconst Series = ({ header, series }) => {\n const [fold, setFold] = useState(true)\n\n const filteredPosts = useMemo(() => {\n if (series.length < 5) return series\n if (!fold) return series\n\n const currentPostIdx = _.findIndex(series, { currentPost: true })\n\n if (currentPostIdx < 2) return series.slice(0, 5)\n if (series.length - currentPostIdx - 1 < 2)\n return series.slice(series.length - 5, series.length)\n\n return series.slice(currentPostIdx - 2, currentPostIdx + 3)\n }, [series, fold])\n\n const showViewButton = useMemo(() => {\n return series.length > 5\n }, [series])\n\n return (\n <SeriesWrapper>\n <SeriesHeader>\n <Link to={`/series/${_.replace(header, /\\s/g, \"-\")}`}>\n SERIES: {header}\n </Link>{\" \"}\n <span>({series.length})</span>\n </SeriesHeader>\n <PostWrapper>\n {filteredPosts.map((post, i) => (\n <Post key={i} currentPost={post.currentPost}>\n <Link to={post.fields.slug}>{post.frontmatter.title}</Link>{\" \"}\n {post.currentPost && <AiOutlineArrowLeft />}{\" \"}\n </Post>\n ))}\n </PostWrapper>\n {showViewButton && (\n <ViewMore\n onClick={() => {\n setFold(!fold)\n }}\n >\n {fold\n ? `View More (+${series.length - filteredPosts.length})`\n : \"View Less\"}\n </ViewMore>\n )}\n </SeriesWrapper>\n )\n}\n\nexport default Series\n","import { useRef } from \"react\"\n\nconst useOffsetTop = () => {\n const ref = useRef()\n\n let offsetTop = 0\n if (ref.current)\n offsetTop =\n ref.current.getBoundingClientRect().top +\n document.documentElement.scrollTop\n\n return [ref, offsetTop]\n}\n\nexport default useOffsetTop\n","import { useEffect, useState } from \"react\"\n\nconst useScroll = () => {\n const [scroll, setScroll] = useState({\n x: 0,\n y: 0,\n })\n\n const onScroll = () => {\n setScroll({ y: window.scrollY, x: window.scrollX })\n }\n\n useEffect(() => {\n window.addEventListener(\"scroll\", onScroll)\n return () => window.removeEventListener(\"scroll\", onScroll)\n }, [])\n\n return scroll\n}\n\nexport default useScroll\n","const offset = element => {\n const rect = element.getBoundingClientRect(),\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n scrollTop = window.pageYOffset || document.documentElement.scrollTop\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft }\n}\n\nexport default offset\n","import React from \"react\"\nimport styled, { css } from \"styled-components\"\n\nimport useScroll from \"hooks/useScroll\"\n\nconst StyledWrapper = styled.div`\n position: relative;\n opacity: 0;\n transition: 0.35s all ease;\n ${props =>\n props.visible &&\n css`\n opacity: 1;\n `}\n`\n\nconst RevealOnScroll = ({ revealAt, reverse, children }) => {\n const { y } = useScroll()\n\n let reveal = null\n if (!reverse) reveal = y > revealAt\n else reveal = y < revealAt\n\n return <StyledWrapper visible={reveal}>{children}</StyledWrapper>\n}\n\nexport default RevealOnScroll\n","import React, { useState, useEffect } from \"react\"\nimport styled, { css } from \"styled-components\"\n\nimport { animateScroll } from \"react-scroll\"\n\nimport useScroll from \"hooks/useScroll\"\n\nimport getElementOffset from \"utils/getElmentOffset\"\n\nimport RevealOnScroll from \"components/RevealOnScroll\"\n\nconst STICK_OFFSET = 100\n\nconst TocWrapper = styled.div`\n position: absolute;\n opacity: 1;\n left: 100%;\n\n & > div {\n padding-right: 20px;\n padding-left: 16px;\n margin-left: 48px;\n position: relative;\n width: 240px;\n max-height: calc(100% - 185px);\n overflow-y: auto;\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n ::-webkit-scrollbar-track {\n background: ${props => props.theme.colors.scrollTrack};\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.scrollHandle};\n }\n\n ${props =>\n props.stick &&\n css`\n position: fixed;\n top: ${STICK_OFFSET}px;\n `}\n }\n\n @media (max-width: 1300px) {\n display: None;\n }\n`\n\nconst ParagraphTitle = styled.div`\n margin-bottom: 8px;\n padding-left: ${props => (props.subtitle ? 19.2 : 0)}px;\n font-size: 14.4px;\n color: ${props => props.theme.colors.mutedText};\n line-height: 1.3;\n transition: all 0.2s;\n\n ${props =>\n props.active &&\n css`\n transform: translate(-11.2px, 0);\n color: ${props => props.theme.colors.secondaryText};\n `}\n\n &:hover {\n color: ${props => props.theme.colors.text};\n cursor: pointer;\n }\n`\n\nconst Toc = ({ items, articleOffset }) => {\n const { y } = useScroll()\n\n const [revealAt, setRevealAt] = useState(4000)\n const [headers, setHeaders] = useState([])\n const [active, setActive] = useState(0)\n\n useEffect(() => {\n const bioElm = document.getElementById(\"bio\")\n\n setRevealAt(\n getElementOffset(bioElm).top - bioElm.getBoundingClientRect().height - 400\n )\n }, [])\n\n useEffect(() => {\n setHeaders(\n [\n ...document.querySelectorAll(\"#article-body > h2, #article-body > h3\"),\n ].map(element => getElementOffset(element).top)\n )\n }, [])\n\n useEffect(() => {\n headers.forEach((header, i) => {\n if (header - 300 < y) {\n setActive(i)\n return\n }\n })\n }, [y])\n\n const handleClickTitle = index => {\n animateScroll.scrollTo(headers[index] - 100)\n }\n\n return (\n <RevealOnScroll revealAt={revealAt} reverse>\n <TocWrapper stick={y > articleOffset - STICK_OFFSET}>\n <div>\n {items.map((item, i) => (\n <ParagraphTitle\n key={i}\n subtitle={item.tagName === \"H3\"}\n active={i === active}\n onClick={() => handleClickTitle(i)}\n >\n {item.innerText}\n </ParagraphTitle>\n ))}\n </div>\n </TocWrapper>\n </RevealOnScroll>\n )\n}\n\nexport default Toc\n","import styled from \"styled-components\"\n\nconst StyledMarkdown = styled.div`\n & {\n font-size: 16.7px;\n color: ${props => props.theme.colors.text};\n line-height: 1.73;\n overflow: hidden;\n }\n\n & h1:first-child,\n & h2:first-child,\n & h3:first-child,\n & h4:first-child {\n margin-top: 0;\n }\n\n & > p,\n & > ul,\n & > ol,\n & table,\n & blockquote,\n & pre,\n & img,\n & .katex-display {\n margin-top: 0;\n margin-bottom: 24px;\n }\n\n & p {\n overflow-x: scroll;\n word-break: break-all;\n\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n & h2,\n & h3,\n & h4,\n & h5,\n & h6 {\n margin: 11.2px 0 4.8px 0;\n font-weight: 700;\n }\n\n & h2 {\n margin-top: 100px;\n margin-bottom: 24px;\n font-size: 28px;\n }\n\n & h3 {\n margin-top: 70px;\n margin-bottom: 20px;\n font-size: 22.4px;\n }\n\n & h4 {\n margin-top: 70px;\n margin-bottom: 15px;\n font-size: 17.6px;\n }\n\n & h5 {\n font-size: 16px;\n }\n\n & h6 {\n font-size: 14.4px;\n }\n\n & strong {\n font-weight: 700;\n }\n\n & em {\n font-style: italic;\n }\n\n & blockquote {\n padding: 18px 24px;\n border-left: 4px solid ${props => props.theme.colors.blockQuoteBorder};\n background-color: ${props => props.theme.colors.blockQuoteBackground};\n\n & *:last-child {\n margin-bottom: 0;\n }\n }\n\n & blockquote blockquote {\n margin-top: 24px;\n }\n\n & blockquote > p > code.language-text {\n background-color: ${props => props.theme.colors.inlineCodeBackgroundDarker};\n }\n\n & table {\n border-collapse: collapse;\n }\n\n & th {\n border-bottom: 2px solid ${props => props.theme.colors.border};\n font-weight: 700;\n }\n\n & td {\n border-top: 1px solid ${props => props.theme.colors.border};\n border-bottom: 1px solid ${props => props.theme.colors.border};\n }\n\n & td,\n th {\n padding: 8px;\n }\n\n & tr:first-child td {\n border-top: none;\n }\n\n & tr:nth-child(even) {\n background-color: ${props => props.theme.colors.tableBackground};\n }\n\n & tr:last-child td {\n border-bottom: none;\n }\n\n & *:not(pre) > code.language-text,\n & table code.language-text {\n position: relative;\n top: -1px;\n margin-right: 3px;\n padding: 3px 5px 3px 5px;\n font-size: 13px;\n background-color: ${props => props.theme.colors.inlineCodeBackground};\n font-weight: bold;\n color: ${props => props.theme.colors.text};\n }\n\n & h2 > code.language-text,\n & h3 > code.language-text,\n & h4 > code.language-text {\n font-size: inherit;\n }\n\n & tr:nth-child(even) code.language-text {\n background-color: ${props => props.theme.colors.inlineCodeBackgroundDarker};\n }\n\n & ul,\n & ol {\n padding-left: 25px;\n }\n\n & ol {\n list-style: decimal;\n }\n\n & ul {\n list-style: disc;\n }\n\n & ul ul {\n list-style: circle;\n }\n\n & ul ul ul {\n list-style: square;\n }\n\n & li {\n margin-bottom: 15px;\n }\n\n & li p {\n margin: 8px 0;\n }\n\n & pre {\n ::-webkit-scrollbar {\n height: 10px;\n }\n ::-webkit-scrollbar-track {\n background: ${props => props.theme.colors.scrollTrack};\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${props => props.theme.colors.scrollHandle};\n }\n }\n\n & code[class*=\"language-\"],\n & pre[class*=\"language-\"] {\n font-size: 13.5px;\n }\n\n & img {\n display: block;\n margin-left: auto;\n margin-right: auto;\n max-width: 100%;\n }\n\n & figcaption {\n margin-top: 5px;\n text-align: center;\n color: #868e96;\n font-size: 12px;\n font-style: italic;\n }\n\n & hr {\n border: none;\n border-bottom: 1px solid ${props => props.theme.colors.border};\n }\n\n & a {\n padding: 1.6px 0;\n color: ${props => props.theme.colors.text};\n }\n\n & a:hover {\n background-color: ${props => props.theme.colors.text};\n color: ${props => props.theme.colors.hoveredLinkText};\n }\n`\n\nexport default StyledMarkdown\n","import { css } from \"styled-components\"\n\nconst CommonStyle = css`\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n margin-bottom: 24px;\n font-size: 13.5px;\n color: #ccc;\n background: none;\n font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n padding: 1em;\n overflow: auto;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`\n\nexport default CommonStyle\n","import { createGlobalStyle, css } from \"styled-components\"\nimport CommonStyle from \"./CommonStyle\"\n\nconst Theme = css`\n /**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chriskempson/tomorrow-theme\n * @author Rose Pritchard\n */\n & code[class*=\"language-\"],\n & pre[class*=\"language-\"] {\n background-color: #222222;\n }\n\n .token.comment,\n .token.block-comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: #999;\n }\n\n .token.punctuation {\n color: #ccc;\n }\n\n .token.tag,\n .token.attr-name,\n .token.namespace,\n .token.deleted {\n color: #e2777a;\n }\n\n .token.function-name {\n color: #6196cc;\n }\n\n .token.boolean,\n .token.number,\n .token.function {\n color: #f08d49;\n }\n\n .token.property,\n .token.class-name,\n .token.constant,\n .token.symbol {\n color: #f8c555;\n }\n\n .token.selector,\n .token.important,\n .token.atrule,\n .token.keyword,\n .token.builtin {\n color: #cc99cd;\n }\n\n .token.string,\n .token.char,\n .token.attr-value,\n .token.regex,\n .token.variable {\n color: #7ec699;\n }\n\n .token.operator,\n .token.entity,\n .token.url {\n color: #67cdcc;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.inserted {\n color: green;\n }\n`\n\nconst DarkMode = createGlobalStyle`\n ${CommonStyle}\n ${Theme}\n`\n\nexport default DarkMode\n","import { createGlobalStyle, css } from \"styled-components\"\nimport CommonStyle from \"./CommonStyle\"\n\nconst Theme = css`\n /**\n * One Light theme for prism.js\n * Based on Atom's One Light theme: https://github.com/atom/atom/tree/master/packages/one-light-syntax\n */\n\n /**\n * One Light colours (accurate as of commit eb064bf on 19 Feb 2021)\n * From colors.less\n * --mono-1: hsl(230, 8%, 24%);\n * --mono-2: hsl(230, 6%, 44%);\n * --mono-3: hsl(230, 4%, 64%)\n * --hue-1: hsl(198, 99%, 37%);\n * --hue-2: hsl(221, 87%, 60%);\n * --hue-3: hsl(301, 63%, 40%);\n * --hue-4: hsl(119, 34%, 47%);\n * --hue-5: hsl(5, 74%, 59%);\n * --hue-5-2: hsl(344, 84%, 43%);\n * --hue-6: hsl(35, 99%, 36%);\n * --hue-6-2: hsl(35, 99%, 40%);\n * --syntax-fg: hsl(230, 8%, 24%);\n * --syntax-bg: hsl(230, 1%, 98%);\n * --syntax-gutter: hsl(230, 1%, 62%);\n * --syntax-guide: hsla(230, 8%, 24%, 0.2);\n * --syntax-accent: hsl(230, 100%, 66%);\n * From syntax-variables.less\n * --syntax-selection-color: hsl(230, 1%, 90%);\n * --syntax-gutter-background-color-selected: hsl(230, 1%, 90%);\n * --syntax-cursor-line: hsla(230, 8%, 24%, 0.05);\n */\n\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background-color: #f7f6f3;\n color: hsl(230, 8%, 24%);\n }\n\n /* Selection */\n code[class*=\"language-\"]::-moz-selection,\n code[class*=\"language-\"] *::-moz-selection,\n pre[class*=\"language-\"] *::-moz-selection {\n background: hsl(230, 1%, 90%);\n color: inherit;\n }\n\n code[class*=\"language-\"]::selection,\n code[class*=\"language-\"] *::selection,\n pre[class*=\"language-\"] *::selection {\n background: hsl(230, 1%, 90%);\n color: inherit;\n }\n\n .token.comment,\n .token.prolog,\n .token.cdata {\n color: hsl(230, 4%, 64%);\n }\n\n .token.doctype,\n .token.punctuation,\n .token.entity {\n color: hsl(230, 8%, 24%);\n }\n\n .token.attr-name,\n .token.class-name,\n .token.boolean,\n .token.constant,\n .token.number,\n .token.atrule {\n color: hsl(35, 99%, 36%);\n }\n\n .token.keyword {\n color: hsl(301, 63%, 40%);\n }\n\n .token.property,\n .token.tag,\n .token.symbol,\n .token.deleted,\n .token.important {\n color: hsl(5, 74%, 59%);\n }\n\n .token.selector,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted,\n .token.regex,\n .token.attr-value,\n .token.attr-value > .token.punctuation {\n color: hsl(119, 34%, 47%);\n }\n\n .token.variable,\n .token.operator,\n .token.function {\n color: hsl(221, 87%, 60%);\n }\n\n .token.url {\n color: hsl(198, 99%, 37%);\n }\n\n /* HTML overrides */\n .token.attr-value > .token.punctuation.attr-equals,\n .token.special-attr > .token.attr-value > .token.value.css {\n color: hsl(230, 8%, 24%);\n }\n\n /* CSS overrides */\n .language-css .token.selector {\n color: hsl(5, 74%, 59%);\n }\n\n .language-css .token.property {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.function,\n .language-css .token.url > .token.function {\n color: hsl(198, 99%, 37%);\n }\n\n .language-css .token.url > .token.string.url {\n color: hsl(119, 34%, 47%);\n }\n\n .language-css .token.important,\n .language-css .token.atrule .token.rule {\n color: hsl(301, 63%, 40%);\n }\n\n /* JS overrides */\n .language-javascript .token.operator {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript\n .token.template-string\n > .token.interpolation\n > .token.interpolation-punctuation.punctuation {\n color: hsl(344, 84%, 43%);\n }\n\n /* JSON overrides */\n .language-json .token.operator {\n color: hsl(230, 8%, 24%);\n }\n\n .language-json .token.null.keyword {\n color: hsl(35, 99%, 36%);\n }\n\n /* MD overrides */\n .language-markdown .token.url,\n .language-markdown .token.url > .token.operator,\n .language-markdown .token.url-reference.url > .token.string {\n color: hsl(230, 8%, 24%);\n }\n\n .language-markdown .token.url > .token.content {\n color: hsl(221, 87%, 60%);\n }\n\n .language-markdown .token.url > .token.url,\n .language-markdown .token.url-reference.url {\n color: hsl(198, 99%, 37%);\n }\n\n .language-markdown .token.blockquote.punctuation,\n .language-markdown .token.hr.punctuation {\n color: hsl(230, 4%, 64%);\n font-style: italic;\n }\n\n .language-markdown .token.code-snippet {\n color: hsl(119, 34%, 47%);\n }\n\n .language-markdown .token.bold .token.content {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.italic .token.content {\n color: hsl(301, 63%, 40%);\n }\n\n .language-markdown .token.strike .token.content,\n .language-markdown .token.strike .token.punctuation,\n .language-markdown .token.list.punctuation,\n .language-markdown .token.title.important > .token.punctuation {\n color: hsl(5, 74%, 59%);\n }\n\n /* General */\n .token.bold {\n font-weight: bold;\n }\n\n .token.comment,\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.namespace {\n opacity: 0.8;\n }\n\n /* Plugin overrides */\n /* Selectors should have higher specificity than those in the plugins' default stylesheets */\n\n /* Show Invisibles plugin overrides */\n .token.token.tab:not(:empty):before,\n .token.token.cr:before,\n .token.token.lf:before,\n .token.token.space:before {\n color: hsla(230, 8%, 24%, 0.2);\n }\n\n /* Styling the buttons */\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 6%, 44%);\n padding: 0.1em 0.4em;\n border-radius: 0.3em;\n }\n\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus {\n background: hsl(230, 1%, 78%); /* custom: darken(--syntax-bg, 20%) */\n color: hsl(230, 8%, 24%);\n }\n\n /* Line Highlight plugin overrides */\n /* The highlighted line itself */\n .line-highlight.line-highlight {\n background: hsla(230, 8%, 24%, 0.05);\n }\n\n /* Default line numbers in Line Highlight plugin */\n .line-highlight.line-highlight:before,\n .line-highlight.line-highlight[data-end]:after {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 8%, 24%);\n padding: 0.1em 0.6em;\n border-radius: 0.3em;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); /* same as Toolbar plugin default */\n }\n\n /* Hovering over a linkable line number (in the gutter area) */\n /* Requires Line Numbers plugin as well */\n pre[id].linkable-line-numbers.linkable-line-numbers\n span.line-numbers-rows\n > span:hover:before {\n background-color: hsla(230, 8%, 24%, 0.05);\n }\n\n /* Line Numbers and Command Line plugins overrides */\n /* Line separating gutter from coding area */\n .line-numbers.line-numbers .line-numbers-rows,\n .command-line .command-line-prompt {\n border-right-color: hsla(230, 8%, 24%, 0.2);\n }\n\n /* Stuff in the gutter */\n .line-numbers .line-numbers-rows > span:before,\n .command-line .command-line-prompt > span:before {\n color: hsl(230, 1%, 62%);\n }\n\n /* Match Braces plugin overrides */\n /* Note: Outline colour is inherited from the braces */\n .rainbow-braces .token.token.punctuation.brace-level-1,\n .rainbow-braces .token.token.punctuation.brace-level-5,\n .rainbow-braces .token.token.punctuation.brace-level-9 {\n color: hsl(5, 74%, 59%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-2,\n .rainbow-braces .token.token.punctuation.brace-level-6,\n .rainbow-braces .token.token.punctuation.brace-level-10 {\n color: hsl(119, 34%, 47%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-3,\n .rainbow-braces .token.token.punctuation.brace-level-7,\n .rainbow-braces .token.token.punctuation.brace-level-11 {\n color: hsl(221, 87%, 60%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-4,\n .rainbow-braces .token.token.punctuation.brace-level-8,\n .rainbow-braces .token.token.punctuation.brace-level-12 {\n color: hsl(301, 63%, 40%);\n }\n\n /* Diff Highlight plugin overrides */\n /* Taken from https://github.com/atom/github/blob/master/styles/variables.less */\n pre.diff-highlight > code .token.token.deleted:not(.prefix),\n pre > code.diff-highlight .token.token.deleted:not(.prefix) {\n background-color: hsla(353, 100%, 66%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection,\n pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,\n pre\n > code.diff-highlight\n .token.token.deleted:not(.prefix)\n *::-moz-selection {\n background-color: hsla(353, 95%, 66%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection,\n pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection,\n pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection {\n background-color: hsla(353, 95%, 66%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix),\n pre > code.diff-highlight .token.token.inserted:not(.prefix) {\n background-color: hsla(137, 100%, 55%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection,\n pre.diff-highlight\n > code\n .token.token.inserted:not(.prefix)\n *::-moz-selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,\n pre\n > code.diff-highlight\n .token.token.inserted:not(.prefix)\n *::-moz-selection {\n background-color: hsla(135, 73%, 55%, 0.25);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection,\n pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection,\n pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection {\n background-color: hsla(135, 73%, 55%, 0.25);\n }\n\n /* Previewers plugin overrides */\n /* Based on https://github.com/atom-community/atom-ide-datatip/blob/master/styles/atom-ide-datatips.less and https://github.com/atom/atom/blob/master/packages/one-light-ui */\n /* Border around popup */\n .prism-previewer.prism-previewer:before,\n .prism-previewer-gradient.prism-previewer-gradient div {\n border-color: hsl(0, 0, 95%);\n }\n\n /* Angle and time should remain as circles and are hence not included */\n .prism-previewer-color.prism-previewer-color:before,\n .prism-previewer-gradient.prism-previewer-gradient div,\n .prism-previewer-easing.prism-previewer-easing:before {\n border-radius: 0.3em;\n }\n\n /* Triangles pointing to the code */\n .prism-previewer.prism-previewer:after {\n border-top-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-flipped.prism-previewer-flipped.after {\n border-bottom-color: hsl(0, 0, 95%);\n }\n\n /* Background colour within the popup */\n .prism-previewer-angle.prism-previewer-angle:before,\n .prism-previewer-time.prism-previewer-time:before,\n .prism-previewer-easing.prism-previewer-easing {\n background: hsl(0, 0%, 100%);\n }\n\n /* For angle, this is the positive area (eg. 90deg will display one quadrant in this colour) */\n /* For time, this is the alternate colour */\n .prism-previewer-angle.prism-previewer-angle circle,\n .prism-previewer-time.prism-previewer-time circle {\n stroke: hsl(230, 8%, 24%);\n stroke-opacity: 1;\n }\n\n /* Stroke colours of the handle, direction point, and vector itself */\n .prism-previewer-easing.prism-previewer-easing circle,\n .prism-previewer-easing.prism-previewer-easing path,\n .prism-previewer-easing.prism-previewer-easing line {\n stroke: hsl(230, 8%, 24%);\n }\n\n /* Fill colour of the handle */\n .prism-previewer-easing.prism-previewer-easing circle {\n fill: transparent;\n }\n`\n\nconst LightMode = createGlobalStyle`\n ${CommonStyle}\n ${Theme}\n`\n\nexport default LightMode\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport DarkMode from \"./DarkMode\"\nimport LightMode from \"./LightMode\"\n\nconst PrismTheme = () => {\n const { theme } = useSelector(state => state.theme)\n\n return <>{theme === \"light\" ? <LightMode /> : <DarkMode />}</>\n}\n\nexport default PrismTheme\n","import React, { useState, useEffect } from \"react\"\nimport styled from \"styled-components\"\n\nimport useOffsetTop from \"hooks/useOffsetTop\"\n\nimport Toc from \"./Toc\"\nimport StyledMarkdown from \"./StyledMarkdown\"\nimport PrismTheme from \"./PrismTheme\"\n\nconst Wrapper = styled.div`\n position: relative;\n margin-bottom: 112px;\n\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst Body = ({ html }) => {\n const [toc, setToc] = useState([])\n\n const [ref, offsetTop] = useOffsetTop()\n\n useEffect(() => {\n setToc(\n Array.from(\n document.querySelectorAll(\"#article-body > h2, #article-body > h3\")\n )\n )\n }, [])\n\n return (\n <Wrapper>\n <Toc items={toc} articleOffset={offsetTop} />\n\n <PrismTheme />\n\n <StyledMarkdown\n id=\"article-body\"\n dangerouslySetInnerHTML={{ __html: html }}\n itemProp=\"articleBody\"\n ref={ref}\n />\n </Wrapper>\n )\n}\n\nexport default Body\n","import e,{useRef as t,useEffect as r}from\"react\";const s=({repo:s,label:u,theme:i,issueTerm:n,issueNumber:o})=>{const m=t(null);return r((()=>{if(!m.current)return;const e=(({repo:e,label:t,theme:r,issueTerm:s,issueNumber:u})=>{const i=document.createElement(\"script\");if(i.src=\"https://utteranc.es/client.js\",i.async=!0,i.setAttribute(\"repo\",e),s){const e=Array.isArray(s)?s.join(\" \"):s;i.setAttribute(\"issue-term\",e)}else\"number\"==typeof u&&i.setAttribute(\"issue-number\",String(u));return i.setAttribute(\"crossorigin\",\"anonymous\"),i.setAttribute(\"theme\",r),t&&i.setAttribute(\"label\",t),i})({repo:s,label:u,theme:i,issueTerm:n,issueNumber:o});var t,r;t=m.current,r=e,t.childNodes.forEach((e=>{e.remove()})),t.appendChild(r)}),[]),e.createElement(\"div\",{ref:m})};export{s as Utterances};\n","/*! @preserve react-md-spinner v1.0.0 - tsuyoshiwada | MIT license. */\nimport React from 'react';\nimport Stylis from 'stylis';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar STYLE_DATA_NAME = \"react-md-spinner\";\n\nvar KEYFRAME_PREFIX = \"__react-md-spinner-animation__\";\nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: true,\n prefix: true,\n compress: false\n});\nvar Keyframe = {\n ROOT_ROTATE: \"\".concat(KEYFRAME_PREFIX, \"root-rotate\"),\n FILL_UNFILL_ROTATE: \"\".concat(KEYFRAME_PREFIX, \"fill-unfill-rotate\"),\n LAYER_1_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-1-fade-in-out\"),\n LAYER_2_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-2-fade-in-out\"),\n LAYER_3_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-3-fade-in-out\"),\n LAYER_4_FADE_IN_OUT: \"\".concat(KEYFRAME_PREFIX, \"layer-4-fade-in-out\"),\n LEFT_SPIN: \"\".concat(KEYFRAME_PREFIX, \"left-spin\"),\n RIGHT_SPIN: \"\".concat(KEYFRAME_PREFIX, \"right-spin\")\n};\nvar keyframes = stylis(\"\", \"\\n@keyframes \".concat(Keyframe.ROOT_ROTATE, \" {\\n to { transform: rotate(360deg); }\\n}\\n\\n@keyframes \").concat(Keyframe.FILL_UNFILL_ROTATE, \" {\\n 12.5% { transform: rotate(135deg) }\\n 25% { transform: rotate(270deg) }\\n 37.5% { transform: rotate(405deg) }\\n 50% { transform: rotate(540deg) }\\n 62.5% { transform: rotate(675deg) }\\n 75% { transform: rotate(810deg) }\\n 87.5% { transform: rotate(945deg) }\\n 100% { transform: rotate(1080deg) }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_1_FADE_IN_OUT, \" {\\n 0% { opacity: 1 }\\n 25% { opacity: 1 }\\n 26% { opacity: 0 }\\n 89% { opacity: 0 }\\n 90% { opacity: 1 }\\n 100% { opacity: 1 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_2_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 15% { opacity: 0 }\\n 25% { opacity: 1 }\\n 50% { opacity: 1 }\\n 51% { opacity: 0 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_3_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 40% { opacity: 0 }\\n 50% { opacity: 1 }\\n 75% { opacity: 1 }\\n 76% { opacity: 0 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LAYER_4_FADE_IN_OUT, \" {\\n 0% { opacity: 0 }\\n 65% { opacity: 0 }\\n 75% { opacity: 1 }\\n 90% { opacity: 1 }\\n 100% { opacity: 0 }\\n}\\n\\n@keyframes \").concat(Keyframe.LEFT_SPIN, \" {\\n 0% { transform: rotate(130deg) }\\n 50% { transform: rotate(-5deg) }\\n 100% { transform: rotate(130deg) }\\n}\\n\\n@keyframes \").concat(Keyframe.RIGHT_SPIN, \" {\\n 0% { transform: rotate(-130deg) }\\n 50% { transform: rotate(5deg) }\\n 100% { transform: rotate(-130deg) }\\n}\\n\"));\n\nvar getStylesheetString = function getStylesheetString() {\n return \"<style type=\\\"text/css\\\" data-\".concat(STYLE_DATA_NAME, \"=\\\"\\\">\").concat(keyframes, \"</style>\");\n};\nvar getStylesheetComponent = function getStylesheetComponent() {\n var _React$createElement;\n\n return React.createElement(\"style\", (_React$createElement = {\n type: \"text/css\"\n }, _defineProperty(_React$createElement, \"data-\".concat(STYLE_DATA_NAME), \"\"), _defineProperty(_React$createElement, \"dangerouslySetInnerHTML\", {\n __html: keyframes\n }), _React$createElement));\n};\n\nvar ssrBehavior = /*#__PURE__*/Object.freeze({\n getStylesheetString: getStylesheetString,\n getStylesheetComponent: getStylesheetComponent\n});\n\nvar getColors = function getColors(props) {\n var singleColor = props.singleColor,\n color1 = props.color1,\n color2 = props.color2,\n color3 = props.color3,\n color4 = props.color4;\n return singleColor ? [singleColor, singleColor, singleColor, singleColor] : [color1, color2, color3, color4];\n};\n\nvar getStyles = function getStyles(props) {\n var size = props.size;\n var duration = props.duration;\n var borderSize = props.borderSize;\n var borderWidth = borderSize || Math.max(1, Math.round(size * 0.107142));\n var colors = getColors(props);\n var arcSize = 270;\n var arcStartRotate = 216;\n var rootDuration = 360 * duration / (arcStartRotate + (360 - arcSize));\n var rootStyle = {\n display: \"inline-block\",\n position: \"relative\",\n width: size,\n height: size,\n verticalAlign: \"middle\",\n fontSize: \"0\",\n animation: \"\".concat(Keyframe.ROOT_ROTATE, \" \").concat(rootDuration, \"ms linear infinite\"),\n WebkitAnimation: \"\".concat(Keyframe.ROOT_ROTATE, \" \").concat(rootDuration, \"ms linear infinite\")\n };\n var layerStyles = colors.map(function (color, i) {\n return {\n boxSizing: \"border-box\",\n display: \"block\",\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n borderColor: color,\n whiteSpace: \"nowrap\",\n opacity: 1,\n animationName: \"\".concat(Keyframe.FILL_UNFILL_ROTATE, \", \").concat(Keyframe[\"LAYER_\".concat(i + 1, \"_FADE_IN_OUT\")]),\n WebkitAnimationName: \"\".concat(Keyframe.FILL_UNFILL_ROTATE, \", \").concat(Keyframe[\"LAYER_\".concat(i + 1, \"_FADE_IN_OUT\")]),\n animationDuration: \"\".concat(duration * colors.length, \"ms\"),\n WebkitAnimationDuration: \"\".concat(duration * colors.length, \"ms\"),\n animationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n WebkitAnimationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n animationIterationCount: \"infinite\",\n WebkitAnimationIterationCount: \"infinite\"\n };\n });\n var clipStyle = {\n display: \"inline-block\",\n boxSizing: \"border-box\",\n position: \"relative\",\n width: \"50%\",\n height: \"100%\",\n overflow: \"hidden\",\n borderColor: \"inherit\"\n };\n var layerClipAfterStyle = {\n display: \"inline-block\",\n boxSizing: \"border-box\",\n position: \"absolute\",\n top: 0,\n borderRadius: \"50%\"\n };\n\n var layerAfterStyle = _objectSpread({}, layerClipAfterStyle, {\n left: \"45%\",\n width: \"10%\",\n borderWidth: borderWidth,\n borderColor: \"inherit\",\n borderTopStyle: \"solid\"\n });\n\n var clipAfterStyle = _objectSpread({}, layerClipAfterStyle, {\n bottom: 0,\n width: \"200%\",\n borderWidth: borderWidth,\n borderStyle: \"solid\",\n animationDuration: \"\".concat(duration, \"ms\"),\n WebkitAnimationDuration: \"\".concat(duration, \"ms\"),\n animationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n WebkitAnimationTimingFunction: \"cubic-bezier(.4, 0, .2, 1)\",\n animationIterationCount: \"infinite\",\n WebkitAnimationIterationCount: \"infinite\"\n });\n\n var clip1AfterStyle = _objectSpread({}, clipAfterStyle, {\n left: 0,\n transform: \"rotate(129deg)\",\n WebkitTransform: \"rotate(129deg)\",\n animationName: Keyframe.LEFT_SPIN,\n WebkitAnimationName: Keyframe.LEFT_SPIN\n });\n\n var clip1AfterStyles = colors.map(function (color) {\n return _objectSpread({}, clip1AfterStyle, {\n borderColor: \"\".concat(color, \" transparent transparent \").concat(color)\n });\n });\n\n var clip2AfterStyle = _objectSpread({}, clipAfterStyle, {\n left: \"-100%\",\n transform: \"rotate(-129deg)\",\n WebkitTransform: \"rotate(-129deg)\",\n animationName: Keyframe.RIGHT_SPIN,\n WebkitAnimationName: Keyframe.RIGHT_SPIN\n });\n\n var clip2AfterStyles = colors.map(function (color) {\n return _objectSpread({}, clip2AfterStyle, {\n borderColor: \"\".concat(color, \" \").concat(color, \" transparent transparent\")\n });\n });\n return {\n rootStyle: rootStyle,\n layerStyles: layerStyles,\n layerAfterStyle: layerAfterStyle,\n clipStyle: clipStyle,\n clip1AfterStyles: clip1AfterStyles,\n clip2AfterStyles: clip2AfterStyles\n };\n};\n\nvar injectStyles = function injectStyles(name, rules) {\n var el = document.createElement(\"style\");\n el.type = \"text/css\";\n el.setAttribute(\"data-\".concat(name), \"\");\n el.innerHTML = rules;\n document.head.appendChild(el);\n};\nvar uninjectStyles = function uninjectStyles(name) {\n var el = document.querySelector(\"[data-\".concat(name, \"]\"));\n\n if (el != null && el.parentNode != null) {\n el.parentNode.removeChild(el);\n }\n};\n\nvar MDSpinner =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MDSpinner, _React$PureComponent);\n\n function MDSpinner() {\n _classCallCheck(this, MDSpinner);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MDSpinner).apply(this, arguments));\n }\n\n _createClass(MDSpinner, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (MDSpinner.mountedInstanceCount < 1) {\n injectStyles(STYLE_DATA_NAME, keyframes);\n }\n\n MDSpinner.mountedInstanceCount++;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n MDSpinner.mountedInstanceCount = Math.max(0, MDSpinner.mountedInstanceCount - 1);\n\n if (MDSpinner.mountedInstanceCount < 1) {\n uninjectStyles(STYLE_DATA_NAME);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n _singleColor = _this$props.singleColor,\n _size = _this$props.size,\n _borderSize = _this$props.borderSize,\n _duration = _this$props.duration,\n _color1 = _this$props.color1,\n _color2 = _this$props.color2,\n _color3 = _this$props.color3,\n _color4 = _this$props.color4,\n rest = _objectWithoutProperties(_this$props, [\"singleColor\", \"size\", \"borderSize\", \"duration\", \"color1\", \"color2\", \"color3\", \"color4\"]);\n\n var _getStyles = getStyles(this.props),\n rootStyle = _getStyles.rootStyle,\n layerStyles = _getStyles.layerStyles,\n layerAfterStyle = _getStyles.layerAfterStyle,\n clipStyle = _getStyles.clipStyle,\n clip1AfterStyles = _getStyles.clip1AfterStyles,\n clip2AfterStyles = _getStyles.clip2AfterStyles;\n\n var layers = [];\n\n for (var i = 0; i < 4; i++) {\n layers.push(React.createElement(\"span\", {\n key: i,\n style: layerStyles[i]\n }, React.createElement(\"span\", {\n style: clipStyle\n }, React.createElement(\"span\", {\n style: clip1AfterStyles[i]\n })), React.createElement(\"span\", {\n style: clipStyle\n }, React.createElement(\"span\", {\n style: clip2AfterStyles[i]\n })), React.createElement(\"span\", {\n style: layerAfterStyle\n })));\n }\n\n return React.createElement(\"span\", _extends({}, rest, {\n style: _objectSpread({}, rootStyle, rest.style != null ? rest.style : {})\n }), layers);\n }\n }]);\n\n return MDSpinner;\n}(React.PureComponent);\n\n_defineProperty(MDSpinner, \"defaultProps\", {\n size: 28,\n duration: 1333,\n color1: \"rgb(66, 165, 245)\",\n color2: \"rgb(239, 83, 80)\",\n color3: \"rgb(253, 216, 53)\",\n color4: \"rgb(76, 175, 80)\"\n});\n\n_defineProperty(MDSpinner, \"mountedInstanceCount\", 0);\n\nexport default MDSpinner;\nexport { ssrBehavior };\n","import React, { useEffect, useState } from \"react\"\nimport { navigate } from \"gatsby\"\nimport { useSelector } from \"react-redux\"\nimport styled, { useTheme } from \"styled-components\"\nimport { BiLeftArrowAlt, BiRightArrowAlt } from \"react-icons/bi\"\nimport { Utterances } from \"utterances-react-component\"\n\nimport { utterances } from \"../../../../blog-config\"\n\nimport MDSpinner from \"react-md-spinner\"\n\nimport Divider from \"components/Divider\"\nimport Bio from \"components/Bio\"\n\nconst ArticleButtonContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 48px;\n\n @media (max-width: 768px) {\n margin-bottom: 80px;\n padding: 0 12.8px;\n flex-direction: column;\n\n & > div:first-child {\n margin-bottom: 12.8px;\n }\n }\n`\n\nconst ArrowFlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n white-space: nowrap;\n`\n\nconst ArticleButtonTextWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n flex-direction: column;\n overflow: hidden;\n`\n\nconst Arrow = styled.div`\n position: relative;\n left: 0;\n display: flex;\n align-items: center;\n font-size: 24px;\n flex-basis: 24px;\n transition: left 0.3s;\n`\n\nconst ArticleButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: ${props => (props.right ? \"flex-end\" : \"flex-start\")};\n padding: 20.8px 16px;\n max-width: 250px;\n flex-basis: 250px;\n font-size: 17.6px;\n border-radius: 5px;\n background-color: ${props => props.theme.colors.nextPostButtonBackground};\n color: ${props => props.theme.colors.text};\n cursor: pointer;\n transition: background-color 0.3s;\n\n &:hover {\n background-color: ${props =>\n props.theme.colors.hoveredNextPostButtonBackground};\n }\n\n & ${ArrowFlexWrapper} {\n flex-direction: ${props => (props.right ? \"row-reverse\" : \"row\")};\n }\n\n & ${ArticleButtonTextWrapper} {\n align-items: ${props => (props.right ? \"flex-end\" : \"flex-start\")};\n }\n\n & ${Arrow} {\n ${props => (props.right ? \"margin-left: 16px\" : \"margin-right: 16px\")};\n }\n\n &:hover ${Arrow} {\n left: ${props => (props.right ? 2 : -2)}px;\n }\n\n @media (max-width: 768px) {\n max-width: inherit;\n flex-basis: inherit;\n }\n`\n\nconst ArticleButtonLabel = styled.div`\n margin-bottom: 9.6px;\n font-size: 12.8px;\n`\n\nconst ArticleButtonTitle = styled.div`\n padding: 2px 0;\n width: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\nconst CommentWrapper = styled.div`\n @media (max-width: 768px) {\n padding: 0 15px;\n }\n`\n\nconst SpinnerWrapper = styled.div`\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst HiddenWrapper = styled.div`\n height: ${props => (props.isHidden ? \"0px\" : \"auto\")};\n overflow: ${props => (props.isHidden ? \"hidden\" : \"auto\")};\n`\n\nconst ArticleButton = ({ right, children, onClick }) => {\n return (\n <ArticleButtonWrapper right={right} onClick={onClick}>\n <ArrowFlexWrapper>\n <Arrow>{right ? <BiRightArrowAlt /> : <BiLeftArrowAlt />}</Arrow>\n <ArticleButtonTextWrapper>\n <ArticleButtonLabel>\n {right ? <>Next Post</> : <>Previous Post</>}\n </ArticleButtonLabel>\n <ArticleButtonTitle>{children}</ArticleButtonTitle>\n </ArticleButtonTextWrapper>\n </ArrowFlexWrapper>\n </ArticleButtonWrapper>\n )\n}\n\nconst Spinner = () => {\n const theme = useTheme()\n return (\n <SpinnerWrapper>\n <MDSpinner singleColor={theme.colors.spinner} />\n </SpinnerWrapper>\n )\n}\n\nconst Comment = () => {\n const { theme } = useSelector(state => state.theme)\n const [spinner, setSpinner] = useState(true)\n\n useEffect(() => {\n setTimeout(() => {\n setSpinner(false)\n }, 1500)\n }, [])\n\n return (\n <>\n {spinner && <Spinner />}\n\n <HiddenWrapper isHidden={spinner}>\n <HiddenWrapper isHidden={theme === \"light\"}>\n <Utterances\n repo={utterances.repo}\n theme={`github-dark`}\n issueTerm={utterances.type}\n />\n </HiddenWrapper>\n <HiddenWrapper isHidden={theme === \"dark\"}>\n <Utterances\n repo={utterances.repo}\n theme={`github-light`}\n issueTerm={utterances.type}\n />\n </HiddenWrapper>\n </HiddenWrapper>\n </>\n )\n}\n\nconst Footer = ({ previous, next }) => {\n return (\n <>\n <ArticleButtonContainer>\n {previous ? (\n <ArticleButton onClick={() => navigate(previous?.fields?.slug)}>\n {previous?.frontmatter?.title}\n </ArticleButton>\n ) : (\n <div></div>\n )}\n {next && (\n <ArticleButton right onClick={() => navigate(next?.fields?.slug)}>\n {next?.frontmatter?.title}\n </ArticleButton>\n )}\n </ArticleButtonContainer>\n <Bio />\n <CommentWrapper>\n <Divider mt=\"32px\" />\n <Comment />\n </CommentWrapper>\n </>\n )\n}\n\nexport default Footer\n","import styled from \"styled-components\"\n\nimport Header from \"./Header\"\nimport Series from \"./Series\"\nimport Body from \"./Body\"\nimport Footer from \"./Footer\"\n\nconst Article = styled.article``\n\nArticle.Header = Header\nArticle.Series = Series\nArticle.Body = Body\nArticle.Footer = Footer\n\nexport default Article\n","import React from \"react\"\nimport SEO from \"components/SEO\"\nimport { graphql } from \"gatsby\"\n\nimport Layout from \"components/Layout\"\nimport Article from \"components/Article\"\n\nimport { siteUrl } from \"../../blog-config\"\n\nconst Post = ({ data }) => {\n const post = data.markdownRemark\n const { previous, next, seriesList } = data\n\n const { title, date, update, tags, series } = post.frontmatter\n const { excerpt } = post\n const { readingTime, slug } = post.fields\n\n let filteredSeries = []\n if (series !== null) {\n filteredSeries = seriesList.edges.map(seriesPost => {\n if (seriesPost.node.id === post.id) {\n return {\n ...seriesPost.node,\n currentPost: true,\n }\n } else {\n return {\n ...seriesPost.node,\n currentPost: false,\n }\n }\n })\n }\n\n return (\n <Layout>\n <SEO title={title} description={excerpt} url={`${siteUrl}${slug}`} />\n <Article>\n <Article.Header\n title={title}\n date={date}\n update={update}\n tags={tags}\n minToRead={Math.round(readingTime.minutes)}\n />\n {filteredSeries.length > 0 && (\n <Article.Series header={series} series={filteredSeries} />\n )}\n <Article.Body html={post.html} />\n <Article.Footer previous={previous} next={next} />\n </Article>\n </Layout>\n )\n}\n\nexport default Post\n\nexport const pageQuery = graphql`\n query BlogPostBySlug(\n $id: String!\n $series: String\n $previousPostId: String\n $nextPostId: String\n ) {\n site {\n siteMetadata {\n title\n }\n }\n markdownRemark(id: { eq: $id }) {\n id\n excerpt(pruneLength: 200, truncate: true)\n html\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\")\n update(formatString: \"MMMM DD, YYYY\")\n tags\n series\n }\n fields {\n slug\n readingTime {\n minutes\n }\n }\n }\n seriesList: allMarkdownRemark(\n sort: { order: ASC, fields: [frontmatter___date] }\n filter: { frontmatter: { series: { eq: $series } } }\n ) {\n edges {\n node {\n id\n fields {\n slug\n }\n frontmatter {\n title\n }\n }\n }\n }\n previous: markdownRemark(id: { eq: $previousPostId }) {\n fields {\n slug\n }\n frontmatter {\n title\n }\n }\n next: markdownRemark(id: { eq: $nextPostId }) {\n fields {\n slug\n }\n frontmatter {\n title\n }\n }\n }\n`\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var toString = require('./toString');\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nmodule.exports = replace;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\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\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'button',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"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 _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\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\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` and `name` from props\n var newProps = _extends({}, this.props);\n delete newProps.name;\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\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\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\n/* DEPRECATED */\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\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 React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'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 _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n var setCancel = function setCancel() {\n options.data.cancel = true;\n };\n _cancelEvents2.default.subscribe(setCancel);\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var listenerName = listener.name;\n if (!listenerName) {\n listenerName = eventName;\n console.warn('Listener must be a named function.');\n }\n\n if (!attachedListeners.has(eventName)) attachedListeners.set(eventName, new Set());\n var listeners = attachedListeners.get(eventName);\n if (listeners.has(listenerName)) return;\n\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n listeners.add(listenerName);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n attachedListeners.get(eventName).delete(listener.name || eventName);\n};\n\nvar attachedListeners = new Map();","'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 _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\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\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'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 _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\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\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var style = {};\n\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'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 _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","/*\n * __ ___\n * _____/ /___ __/ (_)____\n * / ___/ __/ / / / / / ___/\n * (__ ) /_/ /_/ / / (__ )\n * /____/\\__/\\__, /_/_/____/\n * /____/\n *\n * light - weight css preprocessor @licence MIT\n */\n(function (factory) {/* eslint-disable */\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory(null)) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory(null)) :\n\t\t\t(window['stylis'] = factory(null))\n}(/** @param {*=} options */function factory (options) {/* eslint-disable */\n\n\t'use strict'\n\n\t/**\n\t * Notes\n\t *\n\t * The ['<method name>'] pattern is used to support closure compiler\n\t * the jsdoc signatures are also used to the same effect\n\t *\n\t * ----\n\t *\n\t * int + int + int === n4 [faster]\n\t *\n\t * vs\n\t *\n\t * int === n1 && int === n2 && int === n3\n\t *\n\t * ----\n\t *\n\t * switch (int) { case ints...} [faster]\n\t *\n\t * vs\n\t *\n\t * if (int == 1 && int === 2 ...)\n\t *\n\t * ----\n\t *\n\t * The (first*n1 + second*n2 + third*n3) format used in the property parser\n\t * is a simple way to hash the sequence of characters\n\t * taking into account the index they occur in\n\t * since any number of 3 character sequences could produce duplicates.\n\t *\n\t * On the other hand sequences that are directly tied to the index of the character\n\t * resolve a far more accurate measure, it's also faster\n\t * to evaluate one condition in a switch statement\n\t * than three in an if statement regardless of the added math.\n\t *\n\t * This allows the vendor prefixer to be both small and fast.\n\t */\n\n\tvar nullptn = /^\\0+/g /* matches leading null characters */\n\tvar formatptn = /[\\0\\r\\f]/g /* matches new line, null and formfeed characters */\n\tvar colonptn = /: */g /* splits animation rules */\n\tvar cursorptn = /zoo|gra/ /* assert cursor varient */\n\tvar transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */\n\tvar animationptn = /,+\\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */\n\tvar propertiesptn = / +\\s*(?![^(]*[)])/g /* animation properties */\n\tvar elementptn = / *[\\0] */g /* selector elements */\n\tvar selectorptn = /,\\r+?/g /* splits selectors */\n\tvar andptn = /([\\t\\r\\n ])*\\f?&/g /* match & */\n\tvar escapeptn = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g /* matches :global(.*) */\n\tvar invalidptn = /\\W+/g /* removes invalid characters from keyframes */\n\tvar keyframeptn = /@(k\\w+)\\s*(\\S*)\\s*/ /* matches @keyframes $1 */\n\tvar plcholdrptn = /::(place)/g /* match ::placeholder varient */\n\tvar readonlyptn = /:(read-only)/g /* match :read-only varient */\n\tvar beforeptn = /\\s+(?=[{\\];=:>])/g /* matches \\s before ] ; = : */\n\tvar afterptn = /([[}=:>])\\s+/g /* matches \\s after characters [ } = : */\n\tvar tailptn = /(\\{[^{]+?);(?=\\})/g /* matches tail semi-colons ;} */\n\tvar whiteptn = /\\s{2,}/g /* matches repeating whitespace */\n\tvar pseudoptn = /([^\\(])(:+) */g /* pseudo element */\n\tvar writingptn = /[svh]\\w+-[tblr]{2}/ /* match writing mode property values */\n\tvar gradientptn = /([\\w-]+t\\()/g /* match *gradient property */\n\tvar supportsptn = /\\(\\s*(.*)\\s*\\)/g /* match supports (groups) */\n\tvar propertyptn = /([\\s\\S]*?);/g /* match properties leading semicolon */\n\tvar selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */\n\tvar pseudofmt = /[^]*?(:[rp][el]a[\\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */\n\tvar trimptn = /[ \\t]+$/ /* match tail whitspace */\n\tvar dimensionptn = /stretch|:\\s*\\w+\\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */\n\tvar imgsrcptn = /([^-])(image-set\\()/\n\n\t/* vendors */\n\tvar webkit = '-webkit-'\n\tvar moz = '-moz-'\n\tvar ms = '-ms-'\n\n\t/* character codes */\n\tvar SEMICOLON = 59 /* ; */\n\tvar CLOSEBRACES = 125 /* } */\n\tvar OPENBRACES = 123 /* { */\n\tvar OPENPARENTHESES = 40 /* ( */\n\tvar CLOSEPARENTHESES = 41 /* ) */\n\tvar OPENBRACKET = 91 /* [ */\n\tvar CLOSEBRACKET = 93 /* ] */\n\tvar NEWLINE = 10 /* \\n */\n\tvar CARRIAGE = 13 /* \\r */\n\tvar TAB = 9 /* \\t */\n\tvar AT = 64 /* @ */\n\tvar SPACE = 32 /* */\n\tvar AND = 38 /* & */\n\tvar DASH = 45 /* - */\n\tvar UNDERSCORE = 95 /* _ */\n\tvar STAR = 42 /* * */\n\tvar COMMA = 44 /* , */\n\tvar COLON = 58 /* : */\n\tvar SINGLEQUOTE = 39 /* ' */\n\tvar DOUBLEQUOTE = 34 /* \" */\n\tvar FOWARDSLASH = 47 /* / */\n\tvar GREATERTHAN = 62 /* > */\n\tvar PLUS = 43 /* + */\n\tvar TILDE = 126 /* ~ */\n\tvar NULL = 0 /* \\0 */\n\tvar FORMFEED = 12 /* \\f */\n\tvar VERTICALTAB = 11 /* \\v */\n\n\t/* special identifiers */\n\tvar KEYFRAME = 107 /* k */\n\tvar MEDIA = 109 /* m */\n\tvar SUPPORTS = 115 /* s */\n\tvar PLACEHOLDER = 112 /* p */\n\tvar READONLY = 111 /* o */\n\tvar IMPORT = 105 /* <at>i */\n\tvar CHARSET = 99 /* <at>c */\n\tvar DOCUMENT = 100 /* <at>d */\n\tvar PAGE = 112 /* <at>p */\n\n\tvar column = 1 /* current column */\n\tvar line = 1 /* current line numebr */\n\tvar pattern = 0 /* :pattern */\n\n\tvar cascade = 1 /* #id h1 h2 vs h1#id h2#id */\n\tvar prefix = 1 /* vendor prefix */\n\tvar escape = 1 /* escape :global() pattern */\n\tvar compress = 0 /* compress output */\n\tvar semicolon = 0 /* no/semicolon option */\n\tvar preserve = 0 /* preserve empty selectors */\n\n\t/* empty reference */\n\tvar array = []\n\n\t/* plugins */\n\tvar plugins = []\n\tvar plugged = 0\n\tvar should = null\n\n\t/* plugin context */\n\tvar POSTS = -2\n\tvar PREPS = -1\n\tvar UNKWN = 0\n\tvar PROPS = 1\n\tvar BLCKS = 2\n\tvar ATRUL = 3\n\n\t/* plugin newline context */\n\tvar unkwn = 0\n\n\t/* keyframe animation */\n\tvar keyed = 1\n\tvar key = ''\n\n\t/* selector namespace */\n\tvar nscopealt = ''\n\tvar nscope = ''\n\n\t/**\n\t * Compile\n\t *\n\t * @param {Array<string>} parent\n\t * @param {Array<string>} current\n\t * @param {string} body\n\t * @param {number} id\n\t * @param {number} depth\n\t * @return {string}\n\t */\n\tfunction compile (parent, current, body, id, depth) {\n\t\tvar bracket = 0 /* brackets [] */\n\t\tvar comment = 0 /* comments /* // or /* */\n\t\tvar parentheses = 0 /* functions () */\n\t\tvar quote = 0 /* quotes '', \"\" */\n\n\t\tvar first = 0 /* first character code */\n\t\tvar second = 0 /* second character code */\n\t\tvar code = 0 /* current character code */\n\t\tvar tail = 0 /* previous character code */\n\t\tvar trail = 0 /* character before previous code */\n\t\tvar peak = 0 /* previous non-whitespace code */\n\n\t\tvar counter = 0 /* count sequence termination */\n\t\tvar context = 0 /* track current context */\n\t\tvar atrule = 0 /* track @at-rule context */\n\t\tvar pseudo = 0 /* track pseudo token index */\n\t\tvar caret = 0 /* current character index */\n\t\tvar format = 0 /* control character formating context */\n\t\tvar insert = 0 /* auto semicolon insertion */\n\t\tvar invert = 0 /* inverted selector pattern */\n\t\tvar length = 0 /* generic length address */\n\t\tvar eof = body.length /* end of file(length) */\n\t\tvar eol = eof - 1 /* end of file(characters) */\n\n\t\tvar char = '' /* current character */\n\t\tvar chars = '' /* current buffer of characters */\n\t\tvar child = '' /* next buffer of characters */\n\t\tvar out = '' /* compiled body */\n\t\tvar children = '' /* compiled children */\n\t\tvar flat = '' /* compiled leafs */\n\t\tvar selector /* generic selector address */\n\t\tvar result /* generic address */\n\n\t\t// ...build body\n\t\twhile (caret < eof) {\n\t\t\tcode = body.charCodeAt(caret)\n\n\t\t\t// eof varient\n\t\t\tif (caret === eol) {\n\t\t\t\t// last character + noop context, add synthetic padding for noop context to terminate\n\t\t\t\tif (comment + quote + parentheses + bracket !== 0) {\n\t\t\t\t\tif (comment !== 0) {\n\t\t\t\t\t\tcode = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH\n\t\t\t\t\t}\n\n\t\t\t\t\tquote = parentheses = bracket = 0\n\t\t\t\t\teof++\n\t\t\t\t\teol++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t// eof varient\n\t\t\t\tif (caret === eol) {\n\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chars.trim().length > 0) {\n\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchars += body.charAt(caret)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcode = SEMICOLON\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// auto semicolon insertion\n\t\t\t\tif (insert === 1) {\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t// false flags\n\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\tcase OPENPARENTHESES:\n\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// valid\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\tfirst = code\n\t\t\t\t\t\t\tcaret--\n\t\t\t\t\t\t\tcode = SEMICOLON\n\n\t\t\t\t\t\t\twhile (length < eof) {\n\t\t\t\t\t\t\t\tswitch (body.charCodeAt(length++)) {\n\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// token varient\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\tchars = chars.trim()\n\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\tcounter = 1\n\t\t\t\t\t\tlength = ++caret\n\n\t\t\t\t\t\twhile (caret < eof) {\n\t\t\t\t\t\t\tswitch (code = body.charCodeAt(caret)) {\n\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\tcounter++\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\t\tcounter--\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\tswitch (second = body.charCodeAt(caret + 1)) {\n\t\t\t\t\t\t\t\t\t\t// /*, //\n\t\t\t\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\t\t\tcaret = delimited(second, caret, eol, body)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"[\" === 91 & \"]\" === 93 hence forth 91 + 1 + 1 === 93\n\t\t\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"(\" === 40 & \")\" === 41 hence forth 40 + 1 === 41\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// quote tail delimiter is identical to the head delimiter hence noop,\n\t\t\t\t\t\t\t\t// fallthrough clauses have been shifted to the correct tail delimiter\n\t\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\t\t\twhile (caret++ < eol) {\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(caret) === code) {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcaret++\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchild = body.substring(length, caret)\n\n\t\t\t\t\t\tif (first === NULL) {\n\t\t\t\t\t\t\tfirst = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t// @at-rule\n\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\tcase SUPPORTS:\n\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\tselector = current\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tselector = array\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tchild = compile(current, selector, child, second, depth+1)\n\t\t\t\t\t\t\t\tlength = child.length\n\n\t\t\t\t\t\t\t\t// preserve empty @at-rule\n\t\t\t\t\t\t\t\tif (preserve > 0 && length === 0) {\n\t\t\t\t\t\t\t\t\tlength = chars.length\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// execute plugins, @at-rule context\n\t\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\t\tselector = select(array, chars, invert)\n\t\t\t\t\t\t\t\t\tresult = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)\n\t\t\t\t\t\t\t\t\tchars = selector.join('')\n\n\t\t\t\t\t\t\t\t\tif (result !== void 0) {\n\t\t\t\t\t\t\t\t\t\tif ((length = (child = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\t\tsecond = 0\n\t\t\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (length > 0) {\n\t\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\t\tcase SUPPORTS: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(supportsptn, supports)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase KEYFRAME: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\n\t\t\t\t\t\t\t\t\t\t\tif (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + webkit + child + '@' + child\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + child\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + child\n\n\t\t\t\t\t\t\t\t\t\t\tif (id === PAGE) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = (out += child, '')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// selector\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchild = compile(current, select(current, chars, invert), child, id, depth+1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchildren += child\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tatrule = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\tchars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()\n\n\t\t\t\t\t\tif ((length = chars.length) > 1) {\n\t\t\t\t\t\t\t// monkey-patch missing colon\n\t\t\t\t\t\t\tif (pseudo === 0) {\n\t\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\n\t\t\t\t\t\t\t\t// first character is a letter or dash, buffer has a space character\n\t\t\t\t\t\t\t\tif ((first === DASH || first > 96 && first < 123)) {\n\t\t\t\t\t\t\t\t\tlength = (chars = chars.replace(' ', ':')).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// execute plugins, property context\n\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\tif ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {\n\t\t\t\t\t\t\t\t\tif ((length = (chars = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\tchars = '\\0\\0'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\t\tif (second === IMPORT || second === CHARSET) {\n\t\t\t\t\t\t\t\t\t\tflat += chars + body.charAt(caret)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\tif (chars.charCodeAt(length-1) === COLON) {\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tout += property(chars, first, second, chars.charCodeAt(2))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// parse characters\n\t\t\tswitch (code) {\n\t\t\t\tcase CARRIAGE:\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t// auto insert semicolon\n\t\t\t\t\tif (comment + quote + parentheses + bracket + semicolon === 0) {\n\t\t\t\t\t\t// valid non-whitespace characters that\n\t\t\t\t\t\t// may precede a newline\n\t\t\t\t\t\tswitch (peak) {\n\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\tcase AT:\n\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\tcase FOWARDSLASH:\n\t\t\t\t\t\t\tcase DASH:\n\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t// current buffer has a colon\n\t\t\t\t\t\t\t\tif (pseudo > 0) {\n\t\t\t\t\t\t\t\t\tinsert = 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// terminate line comment\n\t\t\t\t\tif (comment === FOWARDSLASH) {\n\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t} else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {\n\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\tchars += '\\0'\n\t\t\t\t\t}\n\n\t\t\t\t\t// execute plugins, newline context\n\t\t\t\t\tif (plugged * unkwn > 0) {\n\t\t\t\t\t\tproxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)\n\t\t\t\t\t}\n\n\t\t\t\t\t// next line, reset column position\n\t\t\t\t\tcolumn = 1\n\t\t\t\t\tline++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase SEMICOLON:\n\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t\t\tcolumn++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// increment column position\n\t\t\t\t\tcolumn++\n\n\t\t\t\t\t// current character\n\t\t\t\t\tchar = body.charAt(caret)\n\n\t\t\t\t\t// remove comments, escape functions, strings, attributes and prepare selectors\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tif (quote + bracket + comment === 0) {\n\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tif (code !== SPACE) {\n\t\t\t\t\t\t\t\t\t\t\tchar = ' '\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// escape breaking control characters\n\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\tchar = '\\\\0'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase FORMFEED: {\n\t\t\t\t\t\t\tchar = '\\\\f'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase VERTICALTAB: {\n\t\t\t\t\t\t\tchar = '\\\\v'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// &\n\t\t\t\t\t\tcase AND: {\n\t\t\t\t\t\t\t// inverted selector pattern i.e html &\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0 && cascade > 0) {\n\t\t\t\t\t\t\t\tinvert = 1\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar = '\\f' + char\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ::p<l>aceholder, l\n\t\t\t\t\t\t// :read-on<l>y, l\n\t\t\t\t\t\tcase 108: {\n\t\t\t\t\t\t\tif (quote + comment + bracket + pattern === 0 && pseudo > 0) {\n\t\t\t\t\t\t\t\tswitch (caret - pseudo) {\n\t\t\t\t\t\t\t\t\t// ::placeholder\n\t\t\t\t\t\t\t\t\tcase 2: {\n\t\t\t\t\t\t\t\t\t\tif (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = tail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// :read-only\n\t\t\t\t\t\t\t\t\tcase 8: {\n\t\t\t\t\t\t\t\t\t\tif (trail === READONLY) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = trail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// :<pattern>\n\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tpseudo = caret\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectors\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket === 0) {\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar += '\\r'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// quotes\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// attributes\n\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase CLOSEBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// functions\n\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tparentheses--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\tswitch (tail*2 + trail*3) {\n\t\t\t\t\t\t\t\t\t\t// :matches\n\t\t\t\t\t\t\t\t\t\tcase 533: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// :global, :not, :nth-child etc...\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tcounter = 0\n\t\t\t\t\t\t\t\t\t\t\tcontext = 1\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tparentheses++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket + pseudo + atrule === 0) {\n\t\t\t\t\t\t\t\tatrule = 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// block/line comments\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\tif (quote + bracket + parentheses > 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (comment) {\n\t\t\t\t\t\t\t\t// initialize line/block comment context\n\t\t\t\t\t\t\t\tcase 0: {\n\t\t\t\t\t\t\t\t\tswitch (code*2 + body.charCodeAt(caret+1)*3) {\n\t\t\t\t\t\t\t\t\t\t// //\n\t\t\t\t\t\t\t\t\t\tcase 235: {\n\t\t\t\t\t\t\t\t\t\t\tcomment = FOWARDSLASH\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// /*\n\t\t\t\t\t\t\t\t\t\tcase 220: {\n\t\t\t\t\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\t\t\t\t\tcomment = STAR\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end block comment context\n\t\t\t\t\t\t\t\tcase STAR: {\n\t\t\t\t\t\t\t\t\tif (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {\n\t\t\t\t\t\t\t\t\t\t// /*<!> ... */, !\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(length+2) === 33) {\n\t\t\t\t\t\t\t\t\t\t\tout += body.substring(length, caret+1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ignore comment blocks\n\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t// aggressive isolation mode, divide each individual selector\n\t\t\t\t\t\t// including selectors in :not function but excluding selectors in :global function\n\t\t\t\t\t\tif (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {\n\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t// outside of an isolated context i.e nth-child(<...>)\n\t\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = char + '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = '\\0' + char + (code === COMMA ? '' : '\\0')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// within an isolated context, sleep untill it's terminated\n\t\t\t\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\t// :globa<l>(\n\t\t\t\t\t\t\t\t\t\t\t\tif (pseudo + 7 === caret && tail === 108) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcontext = ++counter\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((context = --counter) === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\tcase NULL:\n\t\t\t\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\t\tcase FORMFEED:\n\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t// ignore in isolated contexts\n\t\t\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// concat buffer of characters\n\t\t\t\t\t\tchars += char\n\n\t\t\t\t\t\t// previous non-whitespace character code\n\t\t\t\t\t\tif (code !== SPACE && code !== TAB) {\n\t\t\t\t\t\t\tpeak = code\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tail character codes\n\t\t\ttrail = tail\n\t\t\ttail = code\n\n\t\t\t// visit every character\n\t\t\tcaret++\n\t\t}\n\n\t\tlength = out.length\n\n\t\t// preserve empty selector\n \t\tif (preserve > 0) {\n \t\t\tif (length === 0 && children.length === 0 && (current[0].length === 0) === false) {\n \t\t\t\tif (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {\n\t\t\t\t\tlength = current.join(',').length + 2\n \t\t\t\t}\n \t\t\t}\n\t\t}\n\n\t\tif (length > 0) {\n\t\t\t// cascade isolation mode?\n\t\t\tselector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current\n\n\t\t\t// execute plugins, block context\n\t\t\tif (plugged > 0) {\n\t\t\t\tresult = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)\n\n\t\t\t\tif (result !== void 0 && (out = result).length === 0) {\n\t\t\t\t\treturn flat + out + children\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout = selector.join(',') + '{' + out + '}'\n\n\t\t\tif (prefix*pattern !== 0) {\n\t\t\t\tif (prefix === 2 && !vendor(out, 2))\n\t\t\t\t\tpattern = 0\n\n\t\t\t\tswitch (pattern) {\n\t\t\t\t\t// ::read-only\n\t\t\t\t\tcase READONLY: {\n\t\t\t\t\t\tout = out.replace(readonlyptn, ':'+moz+'$1')+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// ::placeholder\n\t\t\t\t\tcase PLACEHOLDER: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + webkit + 'input-$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + moz + '$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, ':' + ms + 'input-$1') + out\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpattern = 0\n\t\t\t}\n\t\t}\n\n\t\treturn flat + out + children\n\t}\n\n\t/**\n\t * Select\n\t *\n\t * @param {Array<string>} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @return {Array<string>}\n\t */\n\tfunction select (parent, current, invert) {\n\t\tvar selectors = current.trim().split(selectorptn)\n\t\tvar out = selectors\n\n\t\tvar length = selectors.length\n\t\tvar l = parent.length\n\n\t\tswitch (l) {\n\t\t\t// 0-1 parent selectors\n\t\t\tcase 0:\n\t\t\tcase 1: {\n\t\t\t\tfor (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {\n\t\t\t\t\tout[i] = scope(selector, out[i], invert, l).trim()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// >2 parent selectors, nested\n\t\t\tdefault: {\n\t\t\t\tfor (var i = 0, j = 0, out = []; i < length; ++i) {\n\t\t\t\t\tfor (var k = 0; k < l; ++k) {\n\t\t\t\t\t\tout[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Scope\n\t *\n\t * @param {string} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @param {number} level\n\t * @return {string}\n\t */\n\tfunction scope (parent, current, invert, level) {\n\t\tvar selector = current\n\t\tvar code = selector.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (selector = selector.trim()).charCodeAt(0)\n\t\t}\n\n\t\tswitch (code) {\n\t\t\t// &\n\t\t\tcase AND: {\n\t\t\t\tswitch (cascade + level) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\tcase 1: {\n\t\t\t\t\t\tif (parent.trim().length === 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// :\n\t\t\tcase COLON: {\n\t\t\t\tswitch (selector.charCodeAt(1)) {\n\t\t\t\t\t// g in :global\n\t\t\t\t\tcase 103: {\n\t\t\t\t\t\tif (escape > 0 && cascade > 0) {\n\t\t\t\t\t\t\treturn selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// :hover\n\t\t\t\t\t\treturn parent.trim() + selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// html &\n\t\t\t\tif (invert*cascade > 0 && selector.indexOf('\\f') > 0) {\n\t\t\t\t\treturn selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn parent + selector\n\t}\n\n\t/**\n\t * Property\n\t *\n\t * @param {string} input\n\t * @param {number} first\n\t * @param {number} second\n\t * @param {number} third\n\t * @return {string}\n\t */\n\tfunction property (input, first, second, third) {\n\t\tvar index = 0\n\t\tvar out = input + ';'\n\t\tvar hash = (first*2) + (second*3) + (third*4)\n\t\tvar cache\n\n\t\t// animation: a, n, i characters\n\t\tif (hash === 944) {\n\t\t\treturn animation(out)\n\t\t} else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {\n\t\t\treturn out\n\t\t}\n\n\t\t// vendor prefix\n\t\tswitch (hash) {\n\t\t\t// text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x\n\t\t\tcase 1015: {\n\t\t\t\t// text-shadow/text-align/text-transform, a\n\t\t\t\treturn out.charCodeAt(10) === 97 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// filter/fill f, i, l\n\t\t\tcase 951: {\n\t\t\t\t// filter, t\n\t\t\t\treturn out.charCodeAt(3) === 116 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// color/column, c, o, l\n\t\t\tcase 963: {\n\t\t\t\t// column, n\n\t\t\t\treturn out.charCodeAt(5) === 110 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// box-decoration-break, b, o, x\n\t\t\tcase 1009: {\n\t\t\t\tif (out.charCodeAt(4) !== 100) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// mask, m, a, s\n\t\t\t// clip-path, c, l, i\n\t\t\tcase 969:\n\t\t\tcase 942: {\n\t\t\t\treturn webkit + out + out\n\t\t\t}\n\t\t\t// appearance: a, p, p\n\t\t\tcase 978: {\n\t\t\t\treturn webkit + out + moz + out + out\n\t\t\t}\n\t\t\t// hyphens: h, y, p\n\t\t\t// user-select: u, s, e\n\t\t\tcase 1019:\n\t\t\tcase 983: {\n\t\t\t\treturn webkit + out + moz + out + ms + out + out\n\t\t\t}\n\t\t\t// background/backface-visibility, b, a, c\n\t\t\tcase 883: {\n\t\t\t\t// backface-visibility, -\n\t\t\t\tif (out.charCodeAt(8) === DASH) {\n\t\t\t\t\treturn webkit + out + out\n\t\t\t\t}\n\n\t\t\t\t// image-set(...)\n\t\t\t\tif (out.indexOf('image-set(', 11) > 0) {\n\t\t\t\t\treturn out.replace(imgsrcptn, '$1'+webkit+'$2') + out\n\t\t\t\t}\n\n\t\t\t\treturn out\n\t\t\t}\n\t\t\t// flex: f, l, e\n\t\t\tcase 932: {\n\t\t\t\tif (out.charCodeAt(4) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(5)) {\n\t\t\t\t\t\t// flex-grow, g\n\t\t\t\t\t\tcase 103: {\n\t\t\t\t\t\t\treturn webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-shrink, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('shrink', 'negative') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-basis, b\n\t\t\t\t\t\tcase 98: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('basis', 'preferred-size') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + out + out\n\t\t\t}\n\t\t\t// order: o, r, d\n\t\t\tcase 964: {\n\t\t\t\treturn webkit + out + ms + 'flex' + '-' + out + out\n\t\t\t}\n\t\t\t// justify-items/justify-content, j, u, s\n\t\t\tcase 1023: {\n\t\t\t\t// justify-content, c\n\t\t\t\tif (out.charCodeAt(8) !== 99) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tcache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')\n\t\t\t\treturn webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out\n\t\t\t}\n\t\t\t// cursor, c, u, r\n\t\t\tcase 1005: {\n\t\t\t\treturn cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out\n\t\t\t}\n\t\t\t// writing-mode, w, r, i\n\t\t\tcase 1000: {\n\t\t\t\tcache = out.substring(13).trim()\n\t\t\t\tindex = cache.indexOf('-') + 1\n\n\t\t\t\tswitch (cache.charCodeAt(0)+cache.charCodeAt(index)) {\n\t\t\t\t\t// vertical-lr\n\t\t\t\t\tcase 226: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// vertical-rl\n\t\t\t\t\tcase 232: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb-rl')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// horizontal-tb\n\t\t\t\t\tcase 220: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'lr')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn out\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + cache + out\n\t\t\t}\n\t\t\t// position: sticky\n\t\t\tcase 1017: {\n\t\t\t\tif (out.indexOf('sticky', 9) === -1) {\n\t\t\t\t\treturn out\n\t\t\t\t}\n\t\t\t}\n\t\t\t// display(flex/inline-flex/inline-box): d, i, s\n\t\t\tcase 975: {\n\t\t\t\tindex = (out = input).length - 10\n\t\t\t\tcache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()\n\n\t\t\t\tswitch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {\n\t\t\t\t\t// inline-\n\t\t\t\t\tcase 203: {\n\t\t\t\t\t\t// inline-box\n\t\t\t\t\t\tif (cache.charCodeAt(8) < 111) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// inline-box/sticky\n\t\t\t\t\tcase 115: {\n\t\t\t\t\t\tout = out.replace(cache, webkit+cache)+';'+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// inline-flex\n\t\t\t\t\t// flex\n\t\t\t\t\tcase 207:\n\t\t\t\t\tcase 102: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+\n\t\t\t\t\t\t\tout.replace(cache, webkit+cache)+';'+\n\t\t\t\t\t\t\tout.replace(cache, ms+cache+'box')+';'+\n\t\t\t\t\t\t\tout\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out + ';'\n\t\t\t}\n\t\t\t// align-items, align-center, align-self: a, l, i, -\n\t\t\tcase 938: {\n\t\t\t\tif (out.charCodeAt(5) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(6)) {\n\t\t\t\t\t\t// align-items, i\n\t\t\t\t\t\tcase 105: {\n\t\t\t\t\t\t\tcache = out.replace('-items', '')\n\t\t\t\t\t\t\treturn webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-self, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-content\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// min/max\n\t\t\tcase 973:\n\t\t\tcase 989: {\n\t\t\t\t// min-/max- height/width/block-size/inline-size\n\t\t\t\tif (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// height/width: min-content / width: max-content\n\t\t\tcase 931:\n\t\t\tcase 953: {\n\t\t\t\tif (dimensionptn.test(input) === true) {\n\t\t\t\t\t// stretch\n\t\t\t\t\tif ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)\n\t\t\t\t\t\treturn property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')\n\t\t\t\t\telse\n\t\t\t\t\t\treturn out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// transform, transition: t, r, a\n\t\t\tcase 962: {\n\t\t\t\tout = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out\n\n\t\t\t\t// transitions\n\t\t\t\tif (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {\n\t\t\t\t\treturn out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Vendor\n\t *\n\t * @param {string} content\n\t * @param {number} context\n\t * @return {boolean}\n\t */\n\tfunction vendor (content, context) {\n\t\tvar index = content.indexOf(context === 1 ? ':' : '{')\n\t\tvar key = content.substring(0, context !== 3 ? index : 10)\n\t\tvar value = content.substring(index + 1, content.length - 1)\n\n\t\treturn should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)\n\t}\n\n\t/**\n\t * Supports\n\t *\n\t * @param {string} match\n\t * @param {string} group\n\t * @return {string}\n\t */\n\tfunction supports (match, group) {\n\t\tvar out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))\n\n\t\treturn out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'\n\t}\n\n\t/**\n\t * Animation\n\t *\n\t * @param {string} input\n\t * @return {string}\n\t */\n\tfunction animation (input) {\n\t\tvar length = input.length\n\t\tvar index = input.indexOf(':', 9) + 1\n\t\tvar declare = input.substring(0, index).trim()\n\t\tvar out = input.substring(index, length-1).trim()\n\n\t\tswitch (input.charCodeAt(9)*keyed) {\n\t\t\tcase 0: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// animation-*, -\n\t\t\tcase DASH: {\n\t\t\t\t// animation-name, n\n\t\t\t\tif (input.charCodeAt(10) !== 110) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// animation/animation-name\n\t\t\tdefault: {\n\t\t\t\t// split in case of multiple animations\n\t\t\t\tvar list = out.split((out = '', animationptn))\n\n\t\t\t\tfor (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {\n\t\t\t\t\tvar value = list[i]\n\t\t\t\t\tvar items = value.split(propertiesptn)\n\n\t\t\t\t\twhile (value = items[index]) {\n\t\t\t\t\t\tvar peak = value.charCodeAt(0)\n\n\t\t\t\t\t\tif (keyed === 1 && (\n\t\t\t\t\t\t\t// letters\n\t\t\t\t\t\t\t(peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||\n\t\t\t\t\t\t\t// dash but not in sequence i.e --\n\t\t\t\t\t\t\t(peak === DASH && value.charCodeAt(1) !== DASH)\n\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t// not a number/function\n\t\t\t\t\t\t\tswitch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {\n\t\t\t\t\t\t\t\tcase 1: {\n\t\t\t\t\t\t\t\t\tswitch (value) {\n\t\t\t\t\t\t\t\t\t\t// not a valid reserved keyword\n\t\t\t\t\t\t\t\t\t\tcase 'infinite': case 'alternate': case 'backwards': case 'running':\n\t\t\t\t\t\t\t\t\t\tcase 'normal': case 'forwards': case 'both': case 'none': case 'linear':\n\t\t\t\t\t\t\t\t\t\tcase 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':\n\t\t\t\t\t\t\t\t\t\tcase 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':\n\t\t\t\t\t\t\t\t\t\tcase 'initial': case 'unset': case 'step-start': case 'step-end': {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tvalue += key\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titems[index++] = value\n\t\t\t\t\t}\n\n\t\t\t\t\tout += (i === 0 ? '' : ',') + items.join(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tout = declare + out + ';'\n\n\t\tif (prefix === 1 || (prefix === 2 && vendor(out, 1)))\n\t\t\treturn webkit + out + out\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Isolate\n\t *\n\t * @param {Array<string>} current\n\t */\n\tfunction isolate (current) {\n\t\tfor (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {\n\t\t\t// split individual elements in a selector i.e h1 h2 === [h1, h2]\n\t\t\tvar elements = current[i].split(elementptn)\n\t\t\tvar out = ''\n\n\t\t\tfor (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {\n\t\t\t\t// empty element\n\t\t\t\tif ((size = (element = elements[j]).length) === 0 && l > 1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttail = out.charCodeAt(out.length-1)\n\t\t\t\tcode = element.charCodeAt(0)\n\t\t\t\tpadding = ''\n\n\t\t\t\tif (j !== 0) {\n\t\t\t\t\t// determine if we need padding\n\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tpadding = ' '\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase AND: {\n\t\t\t\t\t\telement = padding + nscopealt\n\t\t\t\t\t}\n\t\t\t\t\tcase TILDE:\n\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\tcase PLUS:\n\t\t\t\t\tcase SPACE:\n\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\tswitch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {\n\t\t\t\t\t\t\t// :global\n\t\t\t\t\t\t\tcase 530: {\n\t\t\t\t\t\t\t\tif (escape > 0) {\n\t\t\t\t\t\t\t\t\telement = padding + element.substring(8, size - 1)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// :hover, :nth-child(), ...\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif (j < 1 || elements[j-1].length < 1) {\n\t\t\t\t\t\t\t\t\telement = padding + nscopealt + element\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\tpadding = ''\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tif (size > 1 && element.indexOf(':') > 0) {\n\t\t\t\t\t\t\telement = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tout += element\n\t\t\t}\n\n\t\t\tselector[i] = out.replace(formatptn, '').trim()\n\t\t}\n\n\t\treturn selector\n\t}\n\n\t/**\n\t * Proxy\n\t *\n\t * @param {number} context\n\t * @param {string} content\n\t * @param {Array<string>} selectors\n\t * @param {Array<string>} parents\n\t * @param {number} line\n\t * @param {number} column\n\t * @param {number} length\n\t * @param {number} id\n\t * @param {number} depth\n\t * @param {number} at\n\t * @return {(string|void|*)}\n\t */\n\tfunction proxy (context, content, selectors, parents, line, column, length, id, depth, at) {\n\t\tfor (var i = 0, out = content, next; i < plugged; ++i) {\n\t\t\tswitch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase false:\n\t\t\t\tcase true:\n\t\t\t\tcase null: {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tout = next\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (out !== content) {\n\t\t return out\n\t\t}\n\t}\n\n\t/**\n\t * @param {number} code\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction delimited (code, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\t// /*\n\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\tif (code === STAR) {\n\t\t\t\t\t\tif (body.charCodeAt(i - 1) === STAR && index + 2 !== i) {\n\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// //\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\tif (code === FOWARDSLASH) {\n\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * @param {number} type\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {number} find\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction match (type, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\tcase type: {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * Minify\n\t *\n\t * @param {(string|*)} output\n\t * @return {string}\n\t */\n\tfunction minify (output) {\n\t\treturn output\n\t\t\t.replace(formatptn, '')\n\t\t\t.replace(beforeptn, '')\n\t\t\t.replace(afterptn, '$1')\n\t\t\t.replace(tailptn, '$1')\n\t\t\t.replace(whiteptn, ' ')\n\t}\n\n\t/**\n\t * Use\n\t *\n\t * @param {(Array<function(...?)>|function(...?)|number|void)?} plugin\n\t */\n\tfunction use (plugin) {\n\t\tswitch (plugin) {\n\t\t\tcase void 0:\n\t\t\tcase null: {\n\t\t\t\tplugged = plugins.length = 0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (typeof plugin === 'function') {\n\t\t\t\t\tplugins[plugged++] = plugin\n\t\t\t\t}\telse if (typeof plugin === 'object') {\n\t\t\t\t\tfor (var i = 0, length = plugin.length; i < length; ++i) {\n\t\t\t\t\t\tuse(plugin[i])\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tunkwn = !!plugin|0\n\t\t\t\t}\n\t\t\t}\n \t\t}\n\n \t\treturn use\n\t}\n\n\t/**\n\t * Set\n\t *\n\t * @param {*} options\n\t */\n\tfunction set (options) {\n\t\tfor (var name in options) {\n\t\t\tvar value = options[name]\n\t\t\tswitch (name) {\n\t\t\t\tcase 'keyframe': keyed = value|0; break\n\t\t\t\tcase 'global': escape = value|0; break\n\t\t\t\tcase 'cascade': cascade = value|0; break\n\t\t\t\tcase 'compress': compress = value|0; break\n\t\t\t\tcase 'semicolon': semicolon = value|0; break\n\t\t\t\tcase 'preserve': preserve = value|0; break\n\t\t\t\tcase 'prefix':\n\t\t\t\t\tshould = null\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tprefix = 0\n\t\t\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\t\t\tprefix = 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = 2\n\t\t\t\t\t\tshould = value\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn set\n\t}\n\n\t/**\n\t * Stylis\n\t *\n\t * @param {string} selector\n\t * @param {string} input\n\t * @return {*}\n\t */\n\tfunction stylis (selector, input) {\n\t\tif (this !== void 0 && this.constructor === stylis) {\n\t\t\treturn factory(selector)\n\t\t}\n\n\t\t// setup\n\t\tvar ns = selector\n\t\tvar code = ns.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (ns = ns.trim()).charCodeAt(0)\n\t\t}\n\n\t\t// keyframe/animation namespace\n\t\tif (keyed > 0) {\n\t\t\tkey = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')\n\t\t}\n\n\t\t// reset, used to assert if a plugin is moneky-patching the return value\n\t\tcode = 1\n\n\t\t// cascade/isolate\n\t\tif (cascade === 1) {\n\t\t\tnscope = ns\n\t\t} else {\n\t\t\tnscopealt = ns\n\t\t}\n\n\t\tvar selectors = [nscope]\n\t\tvar result\n\n\t\t// execute plugins, pre-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)\n\n\t\t\tif (result !== void 0 && typeof result === 'string') {\n\t\t\t\tinput = result\n\t\t\t}\n\t\t}\n\n\t\t// build\n\t\tvar output = compile(array, selectors, input, 0, 0)\n\n\t\t// execute plugins, post-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)\n\n\t\t\t// bypass minification\n\t\t\tif (result !== void 0 && typeof(output = result) !== 'string') {\n\t\t\t\tcode = 0\n\t\t\t}\n\t\t}\n\n\t\t// reset\n\t\tkey = ''\n\t\tnscope = ''\n\t\tnscopealt = ''\n\t\tpattern = 0\n\t\tline = 1\n\t\tcolumn = 1\n\n\t\treturn compress*code === 0 ? output : minify(output)\n\t}\n\n\tstylis['use'] = use\n\tstylis['set'] = set\n\n\tif (options !== void 0) {\n\t\tset(options)\n\t}\n\n\treturn stylis\n}));\n"],"names":["BioWrapper","styled","div","withConfig","displayName","componentId","profileImageRoot","window","location","host","siteUrl","Profile","Author","props","theme","colors","text","Description","secondaryText","LinksWrapper","icon","Link","_ref","link","children","React","href","target","rel","Bio","github","kaggle","instagram","facebook","linkedIn","email","etc","links","id","author","description","FaGithub","FaKaggle","FaInstagram","FaFacebook","FaLinkedin","FaEnvelope","FaLink","TagListWrapper","TagLink","selected","selectedTagBackground","tagBackground","selectedTagText","tagText","hoveredSelectedTagBackground","hoveredTagBackground","spaceToDash","replace","tagList","count","map","tag","i","key","JSON","stringify","to","fieldValue","totalCount","Wrapper","ArticleTitle","h1","Information","span","Date","title","date","tags","minToRead","TagList","Divider","mt","SeriesWrapper","seriesBackground","SeriesHeader","h2","tertiaryText","PostWrapper","ul","Post","li","currentPost","ViewMore","header","series","fold","setFold","useState","filteredPosts","useMemo","length","currentPostIdx","_findIndex","slice","showViewButton","_replace","post","fields","slug","frontmatter","AiOutlineArrowLeft","onClick","useOffsetTop","ref","useRef","offsetTop","current","getBoundingClientRect","top","document","documentElement","scrollTop","useScroll","scroll","setScroll","x","y","onScroll","scrollY","scrollX","useEffect","addEventListener","removeEventListener","element","rect","scrollLeft","pageXOffset","pageYOffset","left","StyledWrapper","visible","css","revealAt","reverse","reveal","TocWrapper","scrollTrack","scrollHandle","stick","ParagraphTitle","subtitle","mutedText","active","items","articleOffset","setRevealAt","headers","setHeaders","setActive","bioElm","getElementById","getElementOffset","height","_toConsumableArray","querySelectorAll","forEach","RevealOnScroll","item","tagName","handleClickTitle","index","animateScroll","scrollTo","innerText","blockQuoteBorder","blockQuoteBackground","inlineCodeBackgroundDarker","border","tableBackground","inlineCodeBackground","hoveredLinkText","Theme","createGlobalStyle","CommonStyle","PrismTheme","useSelector","state","LightMode","DarkMode","html","toc","setToc","Array","from","Toc","StyledMarkdown","dangerouslySetInnerHTML","__html","itemProp","s","repo","label","u","issueTerm","n","issueNumber","o","m","e","t","r","createElement","src","async","setAttribute","isArray","join","String","childNodes","remove","appendChild","_defineProperties","descriptor","enumerable","configurable","writable","Object","defineProperty","_defineProperty","obj","value","_extends","assign","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectSpread","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","STYLE_DATA_NAME","KEYFRAME_PREFIX","global","cascade","keyframe","prefix","compress","Keyframe","ROOT_ROTATE","FILL_UNFILL_ROTATE","LAYER_1_FADE_IN_OUT","LAYER_2_FADE_IN_OUT","LAYER_3_FADE_IN_OUT","LAYER_4_FADE_IN_OUT","LEFT_SPIN","RIGHT_SPIN","keyframes","MDSpinner","_React$PureComponent","instance","Constructor","TypeError","_classCallCheck","protoProps","staticProps","subClass","superClass","create","constructor","_inherits","name","rules","el","mountedInstanceCount","type","innerHTML","head","Math","max","querySelector","parentNode","removeChild","_this$props","rest","singleColor","size","borderSize","duration","color1","color2","color3","color4","_getStyles","borderWidth","round","getColors","rootDuration","rootStyle","display","position","width","verticalAlign","fontSize","animation","WebkitAnimation","layerStyles","color","boxSizing","borderColor","whiteSpace","opacity","animationName","WebkitAnimationName","animationDuration","WebkitAnimationDuration","animationTimingFunction","WebkitAnimationTimingFunction","animationIterationCount","WebkitAnimationIterationCount","layerClipAfterStyle","borderRadius","layerAfterStyle","borderTopStyle","clipAfterStyle","bottom","borderStyle","clip1AfterStyle","transform","WebkitTransform","clip1AfterStyles","clip2AfterStyle","clipStyle","overflow","clip2AfterStyles","getStyles","layers","push","style","ArticleButtonContainer","ArrowFlexWrapper","ArticleButtonTextWrapper","Arrow","ArticleButtonWrapper","right","nextPostButtonBackground","hoveredNextPostButtonBackground","ArticleButtonLabel","ArticleButtonTitle","CommentWrapper","SpinnerWrapper","HiddenWrapper","isHidden","ArticleButton","BiRightArrowAlt","BiLeftArrowAlt","Spinner","useTheme","spinner","Comment","setSpinner","setTimeout","Utterances","utterances","_ref2","_previous$frontmatter","_next$frontmatter","previous","next","_previous$fields","navigate","_next$fields","Article","article","Header","Series","Body","Footer","data","markdownRemark","seriesList","update","excerpt","readingTime","filteredSeries","edges","seriesPost","node","Layout","SEO","url","minutes","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","freeSelf","root","Function","objectToString","toString","nativeMax","nativeMin","min","now","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","undefined","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","clearTimeout","flush","isObjectLike","isSymbol","other","valueOf","isBinary","test","module","exports","array","predicate","fromIndex","fromRight","baseFindIndex","baseIteratee","toInteger","string","INFINITY","toFinite","remainder","_createClass","defineProperties","_react2","_interopRequireDefault","_scrollLink2","__esModule","default","ButtonElement","_React$Component","Component","_scrollElement2","_propTypes2","ElementWrapper","_this2","newProps","parentBindings","domNode","propTypes","LinkElement","_temp","_this","_len","_key","render","_Link2","_Button2","_Element2","_scroller2","_scrollEvents2","_scrollSpy2","_animateScroll2","_Helpers2","scrollSpy","defaultScroller","PropTypes","scrollHash","protoTypes","isRequired","containerId","container","object","activeClass","spy","bool","smooth","oneOfType","offset","number","delay","isDynamic","absolute","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","spyThrottle","Helpers","Scroll","customScroller","console","warn","scroller","_initialiseProps","nodeType","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addStateHandler","stateHandler","addSpyHandler","spyHandler","setState","unmount","className","trim","prop","handleClick","event","stopPropagation","preventDefault","getActiveLink","isInitialized","elemTopBound","elemBottomBound","containerTop","get","cords","offsetY","isInside","floor","isOutside","activeLink","setActiveLink","getHash","changeHash","updateStates","defaultProps","Element","_React$Component2","_this3","childBindings","registerElems","prevProps","unregister","register","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","callback","getTime","currentPositionX","containerElement","body","supportPageOffset","isCSS1Compat","compatMode","currentPositionY","easing","timestamp","delta","targetPosition","startPosition","start","progress","percent","currentPosition","ceil","horizontal","easedAnimate","bind","registered","setContainer","animateTopScroll","scrollOffset","delayTimeout","subscribe","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","_passiveEventListeners","events","cancelEvent","addPassiveEventListener","eventName","listener","listenerName","attachedListeners","has","set","Set","listeners","supportsPassiveOption","opts","passive","add","removePassiveEventListener","delete","Map","Events","scrollEvent","evtName","_utils","_utils2","mountFlag","initialized","containers","handleHashChange","initStateFromHash","hash","isInit","saveHashHistory","updateHash","_scrollHash2","activeStyle","PureComponent","elemLeftBound","elemRightBound","containerLeft","offsetX","_cords","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","spyCallbacks","spySetState","scrollSpyContainers","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","c","handler","splice","__mapped","__activeLink","getElementsByName","getElementsByClassName","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getElementOffsetInfoUntil","currentOffsetParent","offsetParent","historyUpdate","hashVal","substring","hashToUpdate","curLoc","urlToPush","pathname","search","history","pushState","replaceState","filterElementInContainer","contains","compareDocumentPosition","getComputedStyle","offsetLeft","_getElementOffsetInfo","Error","isDocument","factory","nullptn","formatptn","colonptn","cursorptn","transformptn","animationptn","propertiesptn","elementptn","selectorptn","andptn","escapeptn","invalidptn","keyframeptn","plcholdrptn","readonlyptn","beforeptn","afterptn","tailptn","whiteptn","pseudoptn","writingptn","supportsptn","propertyptn","selfptn","pseudofmt","dimensionptn","imgsrcptn","webkit","moz","ms","SEMICOLON","CLOSEBRACES","OPENBRACES","OPENPARENTHESES","CLOSEPARENTHESES","OPENBRACKET","CLOSEBRACKET","NEWLINE","CARRIAGE","TAB","AT","SPACE","AND","DASH","UNDERSCORE","STAR","COMMA","COLON","SINGLEQUOTE","DOUBLEQUOTE","FOWARDSLASH","GREATERTHAN","PLUS","TILDE","NULL","FORMFEED","VERTICALTAB","KEYFRAME","MEDIA","SUPPORTS","PLACEHOLDER","READONLY","IMPORT","CHARSET","DOCUMENT","PAGE","column","line","pattern","escape","semicolon","preserve","plugins","plugged","should","POSTS","PREPS","UNKWN","PROPS","BLCKS","ATRUL","unkwn","keyed","nscopealt","nscope","compile","parent","depth","selector","bracket","comment","parentheses","quote","first","second","code","tail","trail","peak","counter","context","atrule","pseudo","caret","format","insert","invert","eof","eol","char","chars","child","out","flat","charCodeAt","charAt","delimited","select","proxy","supports","vendor","property","isolate","selectors","split","l","scope","j","k","level","input","third","cache","content","match","group","declare","list","padding","elements","parents","at","stylis","minify","output","use","plugin","ns"],"sourceRoot":""}