{"version":3,"sources":["webpack:///./src/components/blogmodal.module.css","webpack:///./node_modules/react-bootstrap/esm/divWithClassName.js","webpack:///./node_modules/react-bootstrap/esm/CardContext.js","webpack:///./node_modules/react-bootstrap/esm/CardImg.js","webpack:///./node_modules/react-bootstrap/esm/Card.js","webpack:///./node_modules/react-bootstrap/esm/AccordionContext.js","webpack:///./node_modules/react-bootstrap/esm/AccordionToggle.js","webpack:///./node_modules/react-bootstrap/esm/AccordionCollapse.js","webpack:///./node_modules/react-bootstrap/esm/Accordion.js","webpack:///./src/components/BlogNavBar.js","webpack:///./src/templates/blog.module.css","webpack:///./src/components/TagCloud.module.css","webpack:///./src/components/announcements.module.css","webpack:///./src/components/TagCloud.js","webpack:///./src/components/Announcements.js","webpack:///./src/components/BlogModal.js","webpack:///./src/templates/blog.js","webpack:///./node_modules/react-bootstrap/esm/Button.js","webpack:///./node_modules/react-bootstrap/esm/SafeAnchor.js","webpack:///./src/components/blogNavBar.module.css"],"names":["module","exports","forwardRef","p","ref","createElement","className","createContext","CardImg","_ref","bsPrefix","variant","_ref$as","as","Component","props","prefix","displayName","defaultProps","DivStyledAsH5","divWithClassName","DivStyledAsH6","CardBody","createWithBsPrefix","Card","bg","text","border","body","children","cardContext","cardHeaderBsPrefix","CardContext","Provider","value","Img","Title","Subtitle","Body","Link","Text","Header","Footer","ImgOverlay","eventKey","onClick","accordionOnClick","contextEventKey","AccordionContext","onSelect","SelectableContext","e","useAccordionToggle","type","AccordionCollapse","Collapse","in","Children","only","Accordion","_useUncontrolled","activeKey","_useUncontrolled$as","controlledProps","Toggle","categoryNames","LinkItem","category","currentCategory","style","color","to","activeClassName","BlogNavBar","styles","skAdaptiveHeader","collapseOnSelect","expand","Brand","brand","home","sklogo","src","alt","sklogosticky","blogLink","aria-controls","id","ul","TagCloud","currentTag","basePath","useState","setIsOpen","isUp","setIsPlus","isDown","setIsMinus","chevronUpIcon","chevronDownIcon","data","useStaticQuery","caseStudyTotalTags","allMarkdownRemark","edges","filter","node","frontmatter","map","tags","reduce","a","b","concat","sort","totalTags","totalCaseStudyTags","tagCounts","forEach","t","Object","keys","tagCountsReleases","allIndexYaml","tagsReleases","tagCaseStudyCount","splitBasePath","split","splitBasePathResult","length","wrapper","accordion","defaultActiveKey","marginTop","indexOf","Button","btnLink","isOpen","cardBody","tag","key","display","Announcements","announcements","announcement","slug","version","frontmatterTitle","frontmatterPublished","published","hrStyles","read","BlogModal","shouldPerventModal","emailCookieValue","name","cookies","document","cookie","i","charAt","substring","readCookie","window","sessionStorage","getItem","show","setShow","showMobileButton","setShowMobileButton","onTriggerModal","event","relatedTarget","toElement","toastStyle","getElementById","animationDuration","animationFillMode","animationTimingFunction","animationName","handleModalShow","useEffect","isMobile","undefined","orientation","handleEventListener","element","addEventListener","removeEventListener","arr","handleModalClose","bottom","setTimeout","isMobileBtn","form","onSubmit","preventDefault","requestBody","emailValue","json","JSON","stringify","push","xhr","XMLHttpRequest","url","self","location","origin","message","onreadystatechange","readyState","status","d","Date","setFullYear","getFullYear","expiration","toGMTString","escape","createCookie","innerHTML","open","setRequestHeader","send","fontWeight","close","email","placeholder","required","btnSubmit","PaginationLinks","numPages","currentPage","paginationLinksUl","Array","from","_","borderColor","paginationLinksLi","BlogPost","author","replace","toLowerCase","gridStyles","gridBoxesStyles","fields","textDecoration","title","frontmatterAuthor","excerpt","tagBoxStyles","index","tagLinks","BlogAnnouncement","pageContext","scrollHandler","y","getElementsByClassName","pageYOffset","classList","add","remove","Helmet","property","content","margin","paddingTop","gridsStyles","collg4","mb","modalPosition","LetsTalk","SheetkraftFooter","href","position","top","left","background","padding","transition","zIndex","cursor","size","active","block","classes","disabled","isTrivialHref","trim","SafeAnchor","onKeyDown","handleClick","stopPropagation","role","tabIndex"],"mappings":"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","file":"component---src-templates-blog-js-d09b608a057eb4683f84.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"blogmodal-module--form--1LqO3\",\"btnSubmit\":\"blogmodal-module--btnSubmit--1UsGX\",\"email\":\"blogmodal-module--email--2XeYl\",\"close\":\"blogmodal-module--close--3Ba8U\",\"isMobileBtn\":\"blogmodal-module--isMobileBtn--2Ft8g\"};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport classNames from 'classnames';\nexport default (function (className) {\n return React.forwardRef(function (p, ref) {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, p, {\n ref: ref,\n className: classNames(p.className, className)\n }));\n });\n});","import React from 'react';\nexport default React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n variant: null\n};\nvar CardImg = React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n variant = _ref.variant,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'img' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"variant\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'card-img');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: classNames(variant ? prefix + \"-\" + variant : prefix, className)\n }, props));\n});\nCardImg.displayName = 'CardImg';\nCardImg.defaultProps = defaultProps;\nexport default CardImg;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nimport CardContext from './CardContext';\nimport CardImg from './CardImg';\nvar DivStyledAsH5 = divWithClassName('h5');\nvar DivStyledAsH6 = divWithClassName('h6');\nvar CardBody = createWithBsPrefix('card-body');\nvar defaultProps = {\n body: false\n};\nvar Card = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n bg = _ref.bg,\n text = _ref.text,\n border = _ref.border,\n body = _ref.body,\n children = _ref.children,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"bg\", \"text\", \"border\", \"body\", \"children\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'card');\n var cardContext = useMemo(function () {\n return {\n cardHeaderBsPrefix: prefix + \"-header\"\n };\n }, [prefix]);\n return /*#__PURE__*/React.createElement(CardContext.Provider, {\n value: cardContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, prefix, bg && \"bg-\" + bg, text && \"text-\" + text, border && \"border-\" + border)\n }), body ? /*#__PURE__*/React.createElement(CardBody, null, children) : children));\n});\nCard.displayName = 'Card';\nCard.defaultProps = defaultProps;\nCard.Img = CardImg;\nCard.Title = createWithBsPrefix('card-title', {\n Component: DivStyledAsH5\n});\nCard.Subtitle = createWithBsPrefix('card-subtitle', {\n Component: DivStyledAsH6\n});\nCard.Body = CardBody;\nCard.Link = createWithBsPrefix('card-link', {\n Component: 'a'\n});\nCard.Text = createWithBsPrefix('card-text', {\n Component: 'p'\n});\nCard.Header = createWithBsPrefix('card-header');\nCard.Footer = createWithBsPrefix('card-footer');\nCard.ImgOverlay = createWithBsPrefix('card-img-overlay');\nexport default Card;","import React from 'react';\nexport default React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React, { useContext } from 'react';\nimport SelectableContext from './SelectableContext';\nimport AccordionContext from './AccordionContext';\nexport function useAccordionToggle(eventKey, onClick) {\n var contextEventKey = useContext(AccordionContext);\n var onSelect = useContext(SelectableContext);\n return function (e) {\n /*\n Compare the event key in context with the given event key.\n If they are the same, then collapse the component.\n */\n var eventKeyPassed = eventKey === contextEventKey ? null : eventKey;\n onSelect(eventKeyPassed, e);\n if (onClick) onClick(e);\n };\n}\nvar AccordionToggle = React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'button' : _ref$as,\n children = _ref.children,\n eventKey = _ref.eventKey,\n onClick = _ref.onClick,\n props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"children\", \"eventKey\", \"onClick\"]);\n\n var accordionOnClick = useAccordionToggle(eventKey, onClick);\n\n if (Component === 'button') {\n props.type = 'button';\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n onClick: accordionOnClick\n }, props), children);\n});\nexport default AccordionToggle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React, { useContext } from 'react';\nimport Collapse from './Collapse';\nimport AccordionContext from './AccordionContext';\nvar AccordionCollapse = React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n eventKey = _ref.eventKey,\n props = _objectWithoutPropertiesLoose(_ref, [\"children\", \"eventKey\"]);\n\n var contextEventKey = useContext(AccordionContext);\n return /*#__PURE__*/React.createElement(Collapse, _extends({\n ref: ref,\n in: contextEventKey === eventKey\n }, props), /*#__PURE__*/React.createElement(\"div\", null, React.Children.only(children)));\n});\nAccordionCollapse.displayName = 'AccordionCollapse';\nexport default AccordionCollapse;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionToggle from './AccordionToggle';\nimport SelectableContext from './SelectableContext';\nimport AccordionCollapse from './AccordionCollapse';\nimport AccordionContext from './AccordionContext';\nvar Accordion = React.forwardRef(function (props, ref) {\n var _useUncontrolled = useUncontrolled(props, {\n activeKey: 'onSelect'\n }),\n _useUncontrolled$as = _useUncontrolled.as,\n Component = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,\n activeKey = _useUncontrolled.activeKey,\n bsPrefix = _useUncontrolled.bsPrefix,\n children = _useUncontrolled.children,\n className = _useUncontrolled.className,\n onSelect = _useUncontrolled.onSelect,\n controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, [\"as\", \"activeKey\", \"bsPrefix\", \"children\", \"className\", \"onSelect\"]);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion');\n return /*#__PURE__*/React.createElement(AccordionContext.Provider, {\n value: activeKey\n }, /*#__PURE__*/React.createElement(SelectableContext.Provider, {\n value: onSelect\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, controlledProps, {\n className: classNames(className, bsPrefix)\n }), children)));\n});\nAccordion.Toggle = AccordionToggle;\nAccordion.Collapse = AccordionCollapse;\nexport default Accordion;","import React from \"react\"\r\nimport { Navbar } from 'react-bootstrap'\r\nimport { Link } from \"gatsby\"\r\nimport sklogo from '../images/sk-logo.png'\r\nimport sklogosticky from '../images/sk-logo-sticky.png'\r\nimport styles from './blogNavBar.module.css';\r\n\r\n\r\n\r\nconst categoryNames = {\r\n '': \"All\",\r\n 'features': \"Features\",\r\n 'general': \"General\",\r\n 'case-studies': \"Case Studies\",\r\n 'setup': \"Setup\",\r\n 'tips': \"Tips\",\r\n 'announcements': \"Announcements\",\r\n 'news': \"News\"\r\n}\r\n\r\nfunction LinkItem(category, currentCategory) {\r\n let style = currentCategory === category ? { color: '#fff' } : {};\r\n let to = category ? `/blog/category/${category}/` : \"/blog/\";\r\n return (\r\n
  • \r\n {categoryNames[category]}\r\n
  • \r\n );\r\n}\r\n\r\nexport default function BlogNavBar({ currentCategory }) {\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \"sk-logo\"\r\n \"sk-logo\"\r\n \r\n Blog\r\n\r\n \r\n \r\n \r\n
      \r\n {LinkItem(\"\", currentCategory)}\r\n {LinkItem(\"features\", currentCategory)}\r\n {LinkItem(\"setup\", currentCategory)}\r\n {LinkItem(\"general\", currentCategory)}\r\n {LinkItem(\"case-studies\", currentCategory)}\r\n {LinkItem(\"tips\", currentCategory)}\r\n {LinkItem(\"news\", currentCategory)}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paginationLinksUl\":\"blog-module--paginationLinksUl--3SNFk\",\"paginationLinksLi\":\"blog-module--paginationLinksLi--2Ucil\",\"gridStyles\":\"blog-module--gridStyles--2Fnav\",\"gridBoxesStyles\":\"blog-module--gridBoxesStyles--3esZS\",\"textDecoration\":\"blog-module--textDecoration--1eItd\",\"frontmatterTitle\":\"blog-module--frontmatterTitle--1qMhE\",\"frontmatterPublished\":\"blog-module--frontmatterPublished--WgEag\",\"frontmatterAuthor\":\"blog-module--frontmatterAuthor--30b9G\",\"excerpt\":\"blog-module--excerpt--1af9K\",\"slug\":\"blog-module--slug--1Q7-X\",\"tagBoxStyles\":\"blog-module--tagBoxStyles--27V7Q\",\"tagLinks\":\"blog-module--tagLinks--3Bzz8\",\"collg4\":\"blog-module--collg4--1fEQl\",\"mb\":\"blog-module--mb--1Reld\",\"margin\":\"blog-module--margin--1xDN_\",\"paddingTop\":\"blog-module--paddingTop--3ScxN\",\"gridsStyles\":\"blog-module--gridsStyles--3d01F\",\"modalPosition\":\"blog-module--modalPosition--12wuV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"TagCloud-module--wrapper--RvLXf\",\"tags\":\"TagCloud-module--tags--3YLWo\",\"accordion\":\"TagCloud-module--accordion--2ui3w\",\"cardBody\":\"TagCloud-module--cardBody--19VwQ\",\"btnLink\":\"TagCloud-module--btnLink--2Yee9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"announcements\":\"announcements-module--announcements--1Lsec\",\"announcement\":\"announcements-module--announcement--hhQHV\",\"slug\":\"announcements-module--slug--26BLR\",\"Link\":\"announcements-module--Link--3u2W2\",\"frontmatterTitle\":\"announcements-module--frontmatterTitle--12KMI\",\"frontmatterPublished\":\"announcements-module--frontmatterPublished--3gtxR\",\"hrStyles\":\"announcements-module--hrStyles--31Kqe\",\"read\":\"announcements-module--read--37V6f\"};","import React, { useState } from \"react\";\r\nimport { useStaticQuery, graphql, Link } from \"gatsby\";\r\nimport \"../styles/main.css\";\r\nimport styles from \"./TagCloud.module.css\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport Card from \"react-bootstrap/Card\";\r\nimport Accordion from \"react-bootstrap/Accordion\";\r\n\r\nconst query = graphql`\r\n query TagsQuery {\r\n allMarkdownRemark(\r\n filter: {\r\n frontmatter: { draft: { ne: true }, tags: { ne: \"Releases\" } }\r\n fields: { slug: { regex: \"^/blog/\" } }\r\n }\r\n ) {\r\n edges {\r\n node {\r\n frontmatter {\r\n tags\r\n category\r\n }\r\n }\r\n }\r\n }\r\n allIndexYaml {\r\n edges {\r\n node {\r\n version\r\n id\r\n published\r\n other\r\n tags\r\n category\r\n files\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default function TagCloud({ currentTag, basePath }) {\r\n\r\n \r\n /** Accordion **/\r\n const [isOpen, setIsOpen] = useState(true);\r\n const [isUp, setIsPlus] = useState(false);\r\n const [isDown, setIsMinus] = useState(false);\r\n const handleClick = (eventKey) => {\r\n setIsPlus((isUp) => !isUp);\r\n setIsMinus((isDown) => !isDown);\r\n if (eventKey === 0) {\r\n setIsOpen((isOpen) => isOpen);\r\n }\r\n };\r\n\r\n const chevronUpIcon = (\r\n \r\n );\r\n const chevronDownIcon = (\r\n \r\n );\r\n /** Accordion **/\r\n\r\n const data = useStaticQuery(query);\r\n\r\n const categoryCaseStudy = data.allMarkdownRemark.edges\r\n .filter((e) => e.node.frontmatter.category === \"case-studies\")\r\n .map((e) => e.node.frontmatter.tags);\r\n\r\n let caseStudyTotalTags = categoryCaseStudy\r\n .reduce((a, b) => a.concat(b), [])\r\n .sort(); // for case study category and tags based on the case study category\r\n\r\n let totalTags = [],\r\n totalCaseStudyTags = [];\r\n\r\n //for md\r\n let tagCounts = {};\r\n data.allMarkdownRemark.edges.forEach(({ node }) => {\r\n node.frontmatter.tags.forEach((t) => {\r\n tagCounts[t] = (tagCounts[t] || 0) + 1;\r\n });\r\n });\r\n let tags = Object.keys(tagCounts);\r\n\r\n //for releases\r\n let tagCountsReleases = {};\r\n data.allIndexYaml.edges.forEach(({ node }) => {\r\n tagCountsReleases[node.tags] = (tagCountsReleases[node.tags] || 0) + 1;\r\n });\r\n let tagsReleases = Object.keys(tagCountsReleases);\r\n\r\n //for caseStudyTags\r\n let tagCaseStudyCount = {};\r\n caseStudyTotalTags.forEach((t) => {\r\n tagCaseStudyCount[t] = (tagCaseStudyCount[t] || 0) + 1;\r\n });\r\n\r\n caseStudyTotalTags = Object.keys(tagCaseStudyCount);\r\n\r\n totalTags = [...tags, ...tagsReleases].sort();\r\n totalCaseStudyTags = [...caseStudyTotalTags].sort();\r\n\r\n //console.log(basePath, basePath.indexOf(totalCaseStudyTags) > -1,totalCaseStudyTags);\r\n \r\n let splitBasePath = basePath.split(\"/\");\r\n let splitBasePathResult = splitBasePath[splitBasePath.length - 2]; \r\n // console.log(totalCaseStudyTags.indexOf(answer) > -1);\r\n\r\n\r\n // console.log(\r\n // tagCaseStudyCount,\r\n // tagCaseStudyCount,\r\n // tagCountsReleases,\r\n // tagCounts\r\n // );\r\n\r\n return (\r\n
    \r\n -1?'0px':'40px'}}>\r\n \r\n \r\n

    \r\n Tags  {\" \"}\r\n {\r\n handleClick(0);\r\n }}\r\n >\r\n {chevronUpIcon}\r\n \r\n {chevronDownIcon}\r\n \r\n \r\n

    \r\n
    \r\n \r\n \r\n {basePath === \"/blog/category/case-studies/\" //for case study category\r\n ? totalCaseStudyTags.map((tag) => (\r\n \r\n {tag}\r\n 1 ? \"inline-block\" : \"none\",\r\n }}\r\n >\r\n {tagCounts[tag]}\r\n \r\n \r\n ))\r\n : totalCaseStudyTags.indexOf(splitBasePathResult) > -1 //for case study and tag from case study category\r\n ? totalCaseStudyTags.map((tag) => (\r\n \r\n {tag}\r\n 1 ? \"inline-block\" : \"none\",\r\n }}\r\n >\r\n {tagCounts[tag]}\r\n \r\n \r\n ))\r\n : totalTags.map((\r\n tag //for all tags in blog\r\n ) => (\r\n \r\n {tag}\r\n 1\r\n ? \"inline-block\"\r\n : \"none\",\r\n }}\r\n >\r\n {tag === \"Releases\"\r\n ? tagCountsReleases[tag]\r\n : tagCounts[tag]}\r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\"\r\nimport { useStaticQuery, graphql, Link } from \"gatsby\"\r\nimport '../styles/main.css'\r\nimport styles from './announcements.module.css';\r\n\r\nconst query = graphql`\r\nquery AnnouncementsQuery {\r\n allIndexYaml(limit: 3) {\r\n edges {\r\n node {\r\n version \r\n id\r\n published(formatString: \"MMMM DD , YYYY\")\r\n other\r\n tags\r\n category\r\n\r\n }\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport default function Announcements() {\r\n\r\n const data = useStaticQuery(query);\r\n\r\n return (\r\n
    \r\n

    \r\n Announcements\r\n

    \r\n\r\n {\r\n data.allIndexYaml.edges.map(({ node }) => (\r\n\r\n
    \r\n \r\n

    \r\n {'Version ' + node.version + ' has been released'}\r\n

    \r\n \r\n

    \r\n Posted on {node.published}\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n ))\r\n }\r\n Read All\r\n
    \r\n );\r\n}","import React, { useState, useEffect } from 'react'\r\n// import Modal from 'react-bootstrap/Modal'\r\n// import Button from 'react-bootstrap/Button'\r\nimport styles from \"./blogmodal.module.css\"\r\nimport \"../styles/main.css\";\r\n\r\nexport default function BlogModal() {\r\n\r\n const subscribeStyles = {\r\n fontWeight: \"bold\"\r\n }\r\n\r\n const shouldPerventModal = () => {\r\n let emailCookieValue = readCookie('email');\r\n let modalClosed = window.sessionStorage.getItem(\"modalclosed\") != null;\r\n return !!modalClosed || !!emailCookieValue;\r\n }\r\n\r\n const [show, setShow] = useState(false);\r\n const [showMobileButton, setShowMobileButton] = useState(false);\r\n\r\n const onTriggerModal = (event) => {\r\n if (!shouldPerventModal() && (!event.relatedTarget || !event.toElement)) {\r\n setShowMobileButton(false);\r\n handleModalShow();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let isMobile = window.orientation !== undefined;\r\n setShowMobileButton(isMobile && !shouldPerventModal());\r\n const handleEventListener = (element, event) => {\r\n element.addEventListener(event, onTriggerModal);\r\n return () => {\r\n element.removeEventListener(event, onTriggerModal);\r\n }\r\n }\r\n if (isMobile) {\r\n let isMobileButton = document.getElementById('isMobile');\r\n return handleEventListener(isMobileButton, 'click');\r\n }\r\n else {\r\n return handleEventListener(window, 'mouseout');\r\n }\r\n }, []); // this should run only once, hence []\r\n\r\n function createCookie(key, value) {\r\n let d = new Date();\r\n d.setFullYear(d.getFullYear() + 1);\r\n let expiration = d.toGMTString();\r\n let cookie = escape(key) + \"=\" + escape(value) + \";expires=\" + expiration + \";\";\r\n document.cookie = cookie;\r\n }\r\n\r\n function readCookie(name) {\r\n let key = name + \"=\";\r\n let cookies = document.cookie.split(';');\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i];\r\n while (cookie.charAt(0) === ' ') {\r\n cookie = cookie.substring(1, cookie.length);\r\n }\r\n if (cookie.indexOf(key) === 0) {\r\n return cookie.substring(key.length, cookie.length);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n let arr = [];\r\n function submitForm(e) {\r\n e.preventDefault();\r\n let requestBody = {};\r\n let emailValue = document.getElementById('email').value;\r\n requestBody['email'] = emailValue;\r\n let json = JSON.stringify(requestBody);\r\n arr.push(requestBody);\r\n let xhr = new XMLHttpRequest();\r\n let url = window.self.location.origin + \"/api/contact/blog\";\r\n let message = document.getElementById('message');\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4 && xhr.status === 200) {\r\n createCookie('email', emailValue);\r\n message.innerHTML = \"Thank you for your feedback.\";\r\n message.style.color = \"green\";\r\n message.style.display = \"block\";\r\n setTimeout(handleModalClose, 1500);\r\n }\r\n else {\r\n message.innerHTML = \"Some error occured.\";\r\n message.style.color = \"red\";\r\n message.style.display = \"block\";\r\n }\r\n }\r\n xhr.open(\"POST\", url, false);\r\n xhr.setRequestHeader(\"content-type\", \"application/json\");\r\n xhr.send(json);\r\n }\r\n\r\n if (typeof document === 'undefined') return null; // As a workaround - document is not available during server side rendering in Gatsby\r\n\r\n function closeModal() {\r\n window.sessionStorage[\"modalclosed\"] = \"true\";\r\n handleModalClose();\r\n }\r\n\r\n function handleModalClose() {\r\n let toastStyle = document.getElementById('subscribeForm').style;\r\n toastStyle.bottom = -60;\r\n toastStyle.animationDuration = '0.5s';\r\n toastStyle.animationFillMode = 'forwards';\r\n toastStyle.animationTimingFunction = 'ease-out';\r\n toastStyle.animationName = 'slideout';\r\n setTimeout(() => setShow(false), 500);\r\n }\r\n\r\n function handleModalShow() {\r\n setShow(true);\r\n let toastStyle = document.getElementById('subscribeForm').style;\r\n toastStyle.animationDuration = '0.5s';\r\n toastStyle.animationFillMode = 'forwards';\r\n toastStyle.animationTimingFunction = 'ease-in';\r\n toastStyle.animationName = 'slidein';\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {show &&\r\n
    \r\n
    \r\n
    \r\n Subscribe to SheetKraft's Newsletter for latest blog and company updates\r\n ×\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n\r\n\r\n \r\n\r\n )\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { graphql } from \"gatsby\";\r\n//mport Header from \"../components/Header.js\";\r\nimport SheetkraftFooter from \"../components/SheetkraftFooter.js\";\r\nimport LetsTalk from \"../components/LetsTalk\";\r\nimport TagCloud from \"../components/TagCloud\";\r\nimport Announcements from \"../components/Announcements\";\r\nimport BlogNavBar from \"../components/BlogNavBar\";\r\nimport { Link } from \"gatsby\";\r\n//import SearchApi from 'js-worker-search'\r\nimport Slide from \"react-reveal/Slide\";\r\nimport \"../styles/main.css\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport styles from \"./blog.module.css\";\r\nimport BlogModal from \"../components/BlogModal\";\r\n\r\nimport AnchorLink from 'react-anchor-link-smooth-scroll'\r\n\r\nfunction PaginationLinks({ numPages, currentPage, basePath }) {\r\n if (numPages === 1) return null;\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport const query = graphql`\r\n query($postIds: [String!]!) {\r\n allMarkdownRemark(\r\n filter: { id: { in: $postIds } }\r\n sort: { fields: [frontmatter___published], order: DESC }\r\n ) {\r\n edges {\r\n node {\r\n frontmatter {\r\n title\r\n published(formatString: \"MMMM DD, YYYY\")\r\n author\r\n tags\r\n author\r\n category\r\n }\r\n fields {\r\n slug\r\n }\r\n id\r\n excerpt(pruneLength: 100)\r\n }\r\n }\r\n }\r\n\r\n allIndexYaml(\r\n filter: { id: { in: $postIds } }\r\n sort: { fields: published, order: DESC }\r\n ) {\r\n edges {\r\n node {\r\n id\r\n published(formatString: \"MMMM DD, YYYY\")\r\n version\r\n other\r\n excerpt\r\n tags\r\n category\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nfunction BlogPost({ node }) {\r\n let author = node.frontmatter.author.replace(/ /g, \"-\").toLowerCase();\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n

    {node.frontmatter.title}

    \r\n \r\n

    \r\n {node.frontmatter.published} by\r\n \r\n {node.frontmatter.author}\r\n \r\n

    \r\n\r\n

    {node.excerpt}

    \r\n\r\n \r\n Continue Reading\r\n \r\n
    \r\n\r\n
    \r\n {node.frontmatter.tags.map((tag, index) => {\r\n return (\r\n { funct(tag,data)}}**/\r\n >\r\n {tag}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction BlogAnnouncement({ node }) {\r\n return (\r\n
    \r\n
    \r\n \r\n

    \r\n Version {node.version} has been released\r\n

    \r\n \r\n

    \r\n {node.published} by\r\n SheetKraft Bot\r\n

    \r\n\r\n

    {node.excerpt}

    \r\n\r\n \r\n Continue Reading\r\n \r\n\r\n
    \r\n \r\n {node.tags}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default props => {\r\n let { data, pageContext } = props;\r\n let { currentPage, numPages, category, tag, author } = pageContext;\r\n\r\n //For pagination\r\n let basePath = category\r\n ? `/blog/category/${category}/`\r\n : tag\r\n ? `/blog/tag/${tag}/`\r\n : author\r\n ? `/blog/author/${author}/`\r\n : `/blog/`;\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"scroll\", scrollHandler);\r\n return () => {\r\n document.removeEventListener(\"scroll\", scrollHandler);\r\n };\r\n });\r\n\r\n const scrollHandler = () => {\r\n let y = document.getElementsByClassName(\"sk-adaptive-header\")[0];\r\n if (window.pageYOffset > 0) {\r\n y.classList.add(\"sk-is-sticky\");\r\n } else {\r\n y.classList.remove(\"sk-is-sticky\");\r\n }\r\n };\r\n\r\n const gotoContactBlog = {\r\n position: 'fixed',\r\n top: '47%',\r\n left: '0px',\r\n background: '#4472c4',\r\n color: '#fff',\r\n padding: '10px',\r\n transition: 'linear .2s',\r\n zIndex: '2',\r\n cursor: 'pointer'\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n SheetKraft - Blog\r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {[\r\n ...data.allMarkdownRemark.edges.map(({ node }) => [\r\n node.frontmatter.published,\r\n \r\n ]),\r\n ...data.allIndexYaml.edges.map(({ node }) => [\r\n node.published,\r\n \r\n ])\r\n ]\r\n .sort(function (a, b) {\r\n return new Date(b[0]) - new Date(a[0]);\r\n })\r\n .map(e => e[1])}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {category !== \"announcements\" && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n < i className=\"fa fa-phone\"> \r\n
    \r\n );\r\n};\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport SafeAnchor from './SafeAnchor';\nvar defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false,\n type: 'button'\n};\nvar Button = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n variant = _ref.variant,\n size = _ref.size,\n active = _ref.active,\n className = _ref.className,\n block = _ref.block,\n type = _ref.type,\n as = _ref.as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"variant\", \"size\", \"active\", \"className\", \"block\", \"type\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'btn');\n var classes = classNames(className, prefix, active && 'active', prefix + \"-\" + variant, block && prefix + \"-block\", size && prefix + \"-\" + size);\n\n if (props.href) {\n return /*#__PURE__*/React.createElement(SafeAnchor, _extends({}, props, {\n as: as,\n ref: ref,\n className: classNames(classes, props.disabled && 'disabled')\n }));\n }\n\n if (ref) {\n props.ref = ref;\n }\n\n if (!as) {\n props.type = type;\n }\n\n var Component = as || 'button';\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n className: classes\n }));\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport createChainedFunction from './createChainedFunction';\n\nfunction isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * There are situations due to browser quirks or Bootstrap CSS where\n * an anchor tag is needed, when semantically a button tag is the\n * better choice. SafeAnchor ensures that when an anchor is used like a\n * button its accessible. It also emulates input `disabled` behavior for\n * links, which is usually desirable for Buttons, NavItems, DropdownItems, etc.\n */\n\n\nvar SafeAnchor = React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'a' : _ref$as,\n disabled = _ref.disabled,\n onKeyDown = _ref.onKeyDown,\n props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"disabled\", \"onKeyDown\"]);\n\n var handleClick = function handleClick(event) {\n var href = props.href,\n onClick = props.onClick;\n\n if (disabled || isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n\n if (isTrivialHref(props.href)) {\n props.role = props.role || 'button'; // we want to make sure there is a href attribute on the node\n // otherwise, the cursor incorrectly styled (except with role='button')\n\n props.href = props.href || '#';\n }\n\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n onClick: handleClick,\n onKeyDown: createChainedFunction(handleKeyDown, onKeyDown)\n }));\n});\nSafeAnchor.displayName = 'SafeAnchor';\nexport default SafeAnchor;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skAdaptiveHeader\":\"blogNavBar-module--skAdaptiveHeader--1BStJ\",\"brand\":\"blogNavBar-module--brand--o6Dj6\",\"home\":\"blogNavBar-module--home--3uAIf\",\"sklogo\":\"blogNavBar-module--sklogo--3En44\",\"blogLink\":\"blogNavBar-module--blogLink--1phT6\",\"ul\":\"blogNavBar-module--ul--36oGh\"};"],"sourceRoot":""}