{"version":3,"sources":["webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaEnvelope.js","webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaFacebook.js","webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaLinkedin.js","webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaPinterest.js","webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaReddit.js","webpack://ezlunch/./node_modules/@react-icons/all-files/fa/FaTwitter.js","webpack://ezlunch/./node_modules/@react-icons/all-files/lib/esm/iconsManifest.js","webpack://ezlunch/./node_modules/@react-icons/all-files/lib/esm/iconContext.js","webpack://ezlunch/./node_modules/@react-icons/all-files/lib/esm/iconBase.js","webpack://ezlunch/./node_modules/react-fast-compare/index.js","webpack://ezlunch/./node_modules/react-helmet/es/Helmet.js","webpack://ezlunch/./node_modules/react-side-effect/lib/index.js","webpack://ezlunch/./src/components/AppContext.tsx","webpack://ezlunch/./src/components/ClientOnlyRenderable.tsx","webpack://ezlunch/./src/components/button/MyKindoButton.tsx","webpack://ezlunch/./src/components/button/RaisedButton.tsx","webpack://ezlunch/./src/components/button/RaisedButton.module.scss","webpack://ezlunch/./src/hook/responsive_state.ts","webpack://ezlunch/./src/components/layout/nav/Nav.module.scss","webpack://ezlunch/./src/components/MyKindoLogo.tsx","webpack://ezlunch/./src/components/MyKindoLogo.module.scss","webpack://ezlunch/./src/components/button/MyKindoLogin.tsx","webpack://ezlunch/./src/hook/window_size.ts","webpack://ezlunch/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ezlunch/./src/components/BodyStartPortal.ts","webpack://ezlunch/./src/components/layout/nav/NavDrawer.module.scss","webpack://ezlunch/./src/components/FadeIn.tsx","webpack://ezlunch/./src/components/FadeIn.module.scss","webpack://ezlunch/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://ezlunch/./node_modules/dom-helpers/esm/removeClass.js","webpack://ezlunch/./node_modules/react-transition-group/esm/config.js","webpack://ezlunch/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://ezlunch/./node_modules/react-transition-group/esm/Transition.js","webpack://ezlunch/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://ezlunch/./node_modules/dom-helpers/esm/addClass.js","webpack://ezlunch/./node_modules/dom-helpers/esm/hasClass.js","webpack://ezlunch/./src/components/layout/nav/NavDrawer.tsx","webpack://ezlunch/./src/components/BasicPhoneDetails.tsx","webpack://ezlunch/./src/components/layout/nav/Nav.tsx","webpack://ezlunch/./src/components/layout/footer/Footer.module.scss","webpack://ezlunch/./src/hook/locale.ts","webpack://ezlunch/./src/components/layout/footer/Footer.tsx","webpack://ezlunch/./src/components/layout/Layout.tsx","webpack://ezlunch/./src/components/layout/Layout.module.scss","webpack://ezlunch/./src/components/section/Section.tsx","webpack://ezlunch/./src/components/section/Section.module.scss","webpack://ezlunch/./src/components/social/ShareIconType.ts","webpack://ezlunch/./src/components/social/icon/common.ts","webpack://ezlunch/./src/components/social/icon/common.module.scss","webpack://ezlunch/./src/components/social/icon/FacebookShareIcon.tsx","webpack://ezlunch/./src/components/social/icon/LinkedinShareIcon.tsx","webpack://ezlunch/./src/components/social/icon/PinterestShareIcon.tsx","webpack://ezlunch/./src/components/social/icon/RedditShareIcon.tsx","webpack://ezlunch/./src/components/social/icon/TwitterShareIcon.tsx","webpack://ezlunch/./src/components/social/icon/EmailShareIcon.tsx","webpack://ezlunch/./src/components/social/SocialIcon.tsx","webpack://ezlunch/./src/components/social/SocialIcons.tsx","webpack://ezlunch/./src/components/social/SocialIcons.module.scss","webpack://ezlunch/./src/config.ts","webpack://ezlunch/./src/util/util.ts","webpack://ezlunch/./src/components/button/MyKindoLogin.module.scss","webpack://ezlunch/./src/images/contact_icon_phone.svg","webpack://ezlunch/./src/images/cross_icon.svg","webpack://ezlunch/./src/images/hamburger_icon.svg"],"names":["GenIcon","module","exports","props","DefaultContext","color","undefined","size","className","style","attr","IconContext","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","Tree2Element","tree","map","node","tag","key","child","data","IconBase","elem","conf","title","svgProps","computedSize","stroke","fill","strokeWidth","height","width","xmlns","children","Consumer","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","constructor","keys","it","Array","isArray","entries","next","done","has","value","get","RegExp","source","flags","valueOf","toString","$$typeof","error","message","match","console","warn","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","name","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","_extends","objectWithoutProperties","possibleConstructorReturn","self","ReferenceError","encodeSpecialCharacters","str","encode","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","forEach","push","tagUnion","property","rafPolyfill","Date","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","requestAnimationFrame","window","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","document","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","querySelectorAll","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","set","canUseDOM","propTypes","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","ex","React","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName","appContext","AppContextProvider","context","Provider","useAppContext","ctx","ClientOnlyRenderable","serverSideRenderable","useState","showChild","setShowChild","useEffect","Function","MyKindoButton","onClick","mergeClassNames","styles","RaisedButton","ResponsiveState","navLink","navLinkActive","phoneDetails","subnav","MyKindoLogo","fontSize","MyKindoLogin","minimised","onClickCallback","useCallback","triggerGtagEvent","action","label","open","MYKINDO_LOGIN_URL","S","src","alt","DEFAULT_WINDOW_SIZE","useWindowSize","defaultSize","currentSize","setCurrentSize","onWindowResize","innerWidth","innerHeight","addEventListener","removeEventListener","useWindowWidth","_objectWithoutPropertiesLoose","excluded","sourceKeys","BodyStartPortal","startPortalDiv","getElementById","ReactDOM","item","itemEnter","itemEnterActive","itemEnterDone","itemExit","itemExitActive","FadeIn","duration","delay","animationDuration","animationDelay","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","timeout","mounting","performEnter","performExit","setState","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","noop","contextType","removeClass","classes","c","element","classList","remove","baseVal","CSSTransition","_len","args","_key","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","scrollTop","add","contains","hasClass","_addClass","_this$appliedClasses$","NavDrawer","shown","zIndex","onHide","NavDrawerContent","links","phone","mounted","setMounted","currentLocale","stopPropagation","enterActive","enterDone","exitActive","to","getPathForLocale","navLinks","page","slug","NavDrawerLink","href","rel","nationalNumber","callableNumber","userVisible","BasicPhoneDetails","localNumber","NavPageLinks","showingHamburgerMenu","setShowingHamburgerMenu","windowWidth","currentSlug","dismissHamburgerMenuCallback","toUpperCase","marginTop","NavPhoneDetails","windowSize","PHONE","TABLET","LAPTOP","DESKTOP","doMinimiseMyKindoLogin","doHideMyKindoLogin","useStaticQuery","query","strapi","globalConfig","G","image","shrunkFavicon","urlSharp","childImageSharp","gatsbyImageData","Favicon","paddingLeft","section","body","appBadgeIcon","sectionContent","heading","sectionFooter","useCurrentLocale","Footer","aboutEzlunch","aboutEzlunchPage","kindoEnquiriesUrl","socialsPitch","quickLinkSections","pageSeo","AboutEzlunchSection","QuickLinksSection","quickLinksSections","quality","ConnectSection","getFullYear","QuickLinksLinkSection","QuickLink","internalPageLink","externalPageLink","connectSectionQuery","helpdeskEmail","SocialIcons","footerData","layoutQuery","Helmet","charSet","httpEquiv","display","visibility","footer","ShareIconType","getActualSize","baseSize","scaleOnTouchScreen","matchMedia","matches","logShareClick","shareType","category","Icon","FacebookShareIcon","currentUrlEncoded","encodeURIComponent","location","origin","url","FACEBOOK_APP_ID","Facebook","FaFacebook","LinkedinShareIcon","Linkedin","FaLinkedin","PinterestShareIcon","mediaUrl","description","descriptionPart","Pinterest","FaPinterest","RedditShareIcon","titlePart","Reddit","FaReddit","TwitterShareIcon","text","Twitter","FaTwitter","EmailShareIcon","subject","subjectPart","bodyPart","Email","FaEnvelope","SocialIcon","linkType","defaultMetadata","Metadata","titleSuffix","shareImageUrlPath","shareImage","staticURL","shareTitle","metaTitle","shareDescription","metaDescription","getAbsoluteUrl_CLIENT_ONLY","socialLinks","MYKINDO_ATMY_API","MYKINDO_BASE_URL","MYKINDO_JOIN_URL","MYKINDO_ATMY_URL","EMAIL_SCHOOL_SIGNUP_PITCH","SCHOOL_ALIAS_LIST","subs","locale","path","forceLocale","startsWith","URL","actualNames","pathify","strDirty","strMut","sub","gtag","maximised","clipon","clipImage","clipContent","clipLogo","subtitle","bold","ContactIconPhone","default","CrossIcon","HamburgerIcon"],"mappings":"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","file":"commons-7679b080664c4fcaa250.js","sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaEnvelope = function FaEnvelope(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 512 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"\n }\n }]\n })(props);\n};","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaFacebook = function FaFacebook(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 512 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"\n }\n }]\n })(props);\n};","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaLinkedin = function FaLinkedin(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 448 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"\n }\n }]\n })(props);\n};","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaPinterest = function FaPinterest(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 496 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"\n }\n }]\n })(props);\n};","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaReddit = function FaReddit(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 512 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"\n }\n }]\n })(props);\n};","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon;\n\nmodule.exports.FaTwitter = function FaTwitter(props) {\n return GenIcon({\n \"tag\": \"svg\",\n \"attr\": {\n \"viewBox\": \"0 0 512 512\"\n },\n \"child\": [{\n \"tag\": \"path\",\n \"attr\": {\n \"d\": \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"\n }\n }]\n })(props);\n};","export var IconsManifest = [{\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/refactoringui/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}];","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function elem(conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","import React from \"react\"\r\n\r\nexport interface AppContext {\r\n currentLocale: string,\r\n currentSlug: string | null\r\n}\r\n\r\nconst appContext = React.createContext(null)\r\n\r\nexport const AppContextProvider: React.FC<{context: AppContext}> = ({children, context}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const useAppContext = (): AppContext => {\r\n const ctx = React.useContext(appContext)\r\n if (ctx === null) {\r\n // this is especially useful in TypeScript so you don't need to be checking for null all the time\r\n throw new Error('useAppContext must be used within an AppContextProvider.')\r\n }\r\n return ctx\r\n}","import React, { useEffect, useState } from \"react\"\r\n\r\ninterface ClientOnlyRenderableProps {\r\n serverSideRenderable?: React.ReactNode,\r\n children: (() => React.ReactNode) | React.ReactNode\r\n}\r\nexport const ClientOnlyRenderable: React.FC = ({children, serverSideRenderable}) => {\r\n const [showChild, setShowChild] = useState(false)\r\n\r\n useEffect(() => {\r\n setShowChild(true)\r\n }, [])\r\n\r\n if (!showChild) {\r\n return (serverSideRenderable !== undefined) ? <>{serverSideRenderable} : null\r\n }\r\n else {\r\n return (\r\n <>\r\n {(children instanceof Function) ? children() : children}\r\n \r\n )\r\n }\r\n}","import React from \"react\"\r\nimport { mergeClassNames } from \"../../util/util\"\r\nimport * as styles from \"./MyKindoLogin.module.scss\"\r\nimport { RaisedButton } from \"./RaisedButton\"\r\n\r\ninterface MyKindoButtonProps {\r\n onClick: VoidFunction,\r\n className?: string\r\n}\r\nexport const MyKindoButton: React.FC = ({children, onClick, className}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}","import React from \"react\"\r\nimport * as styles from \"./RaisedButton.module.scss\"\r\n\r\ninterface RaisedButtonProps {\r\n className?: string,\r\n onClick: VoidFunction,\r\n style?: React.CSSProperties\r\n}\r\nexport const RaisedButton: React.FC = ({ children, className, onClick, style }) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}","// extracted by mini-css-extract-plugin\nexport var RaisedButton = \"RaisedButton-module--RaisedButton--2NIsB\";","import { useWindowSize } from \"./window_size\"\r\n\r\nexport enum ResponsiveState {\r\n PHONE,\r\n TABLET,\r\n LAPTOP,\r\n DESKTOP\r\n}\r\n\r\nexport const useResponsiveState = (): ResponsiveState => {\r\n const windowSize = useWindowSize()\r\n\r\n if (windowSize.width <= 400) {\r\n return ResponsiveState.PHONE\r\n }\r\n else if (windowSize.width <= 868) {\r\n return ResponsiveState.TABLET\r\n }\r\n else if (windowSize.width <= 1288) {\r\n return ResponsiveState.LAPTOP\r\n }\r\n else {\r\n return ResponsiveState.DESKTOP\r\n }\r\n}","// extracted by mini-css-extract-plugin\nexport var Nav = \"Nav-module--Nav--2PtlU\";\nexport var logoContainer = \"Nav-module--logoContainer--1BjQ_\";\nexport var links = \"Nav-module--links--2Px9w\";\nexport var pageLinks = \"Nav-module--pageLinks--3tDKe\";\nexport var navLink = \"Nav-module--navLink--2Fc_q\";\nexport var active = \"Nav-module--active--Vf7_7\";\nexport var navLinkActive = \"Nav-module--navLinkActive--2DaVe\";\nexport var drawerTriggerContainer = \"Nav-module--drawerTriggerContainer--lh2nQ\";\nexport var hamburgerIcon = \"Nav-module--hamburgerIcon--1Q0to\";\nexport var phoneDetails = \"Nav-module--phoneDetails--2c5Uh\";\nexport var phoneIcon = \"Nav-module--phoneIcon--quTF-\";\nexport var actionButtons = \"Nav-module--actionButtons--3h3e_\";\nexport var subnav = \"Nav-module--subnav--1xYkx\";\nexport var subnavbtn = \"Nav-module--subnavbtn--1i1nd\";\nexport var subnavContent = \"Nav-module--subnavContent--1houm\";\nexport var caretDown = \"Nav-module--caretDown--3xYng\";","import React from \"react\"\r\nimport * as styles from \"./MyKindoLogo.module.scss\"\r\nimport { mergeClassNames } from \"../util/util\"\r\n\r\ninterface MyKindoLogoProps {\r\n fontSize?: number,\r\n className?: string\r\n}\r\nexport const MyKindoLogo: React.FC = ({fontSize = 19, className}) => {\r\n return (\r\n \r\n my\r\n kindo\r\n \r\n )\r\n}","// extracted by mini-css-extract-plugin\nexport var MyKindoLogo = \"MyKindoLogo-module--MyKindoLogo--12jVu\";\nexport var my = \"MyKindoLogo-module--my--2xID8\";\nexport var kindo = \"MyKindoLogo-module--kindo--2lvWi\";","import React, { useCallback } from \"react\"\r\nimport * as styles from \"./MyKindoLogin.module.scss\"\r\nimport { MyKindoLogo } from \"../MyKindoLogo\"\r\nimport { StaticImage } from \"gatsby-plugin-image\"\r\nimport { mergeClassNames, triggerGtagEvent } from \"../../util/util\"\r\nimport { MyKindoButton } from \"./MyKindoButton\"\r\nimport { MYKINDO_LOGIN_URL } from \"../../config\"\r\n\r\ninterface MyKindoLoginProps {\r\n minimised: boolean\r\n}\r\nexport const MyKindoLogin: React.FC = ({minimised = false}) => {\r\n const onClickCallback = useCallback(() => {\r\n triggerGtagEvent({\r\n action: \"click\",\r\n label: 'mykindo_login'\r\n })\r\n\r\n window.open(MYKINDO_LOGIN_URL, \"_blank\")\r\n }, [])\r\n\r\n if (minimised) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n return (\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n powered by\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n create account\r\n or login\r\n
\r\n
\r\n )\r\n }\r\n}","import { Size } from \"../util/size\"\r\nimport { useEffect, useState } from \"react\"\r\n\r\nconst DEFAULT_WINDOW_SIZE: Size = {\r\n width: 1600,\r\n height: 900\r\n}\r\nexport const useWindowSize = (defaultSize: Size = DEFAULT_WINDOW_SIZE): Size => {\r\n const [currentSize, setCurrentSize] = useState(defaultSize)\r\n\r\n useEffect(() => {\r\n const onWindowResize = () => {\r\n setCurrentSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n })\r\n }\r\n\r\n window.addEventListener(\"resize\", onWindowResize)\r\n onWindowResize()\r\n\r\n // Clean up when we unmount\r\n return () => window.removeEventListener(\"resize\", onWindowResize)\r\n }, [])\r\n\r\n return currentSize\r\n}\r\n\r\nexport const useWindowWidth = (): number => {\r\n return useWindowSize().width\r\n}\r\n\r\nexport const useWindowHeight = (): number => {\r\n return useWindowSize().height\r\n}","export default function _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}","import ReactDOM from \"react-dom\"\r\n\r\n// Does some lovely startup DOM manipulation. Only import this if it's actually needed.\r\ninterface BodyStartPortalProps {\r\n key?: string | null | undefined\r\n}\r\nexport const BodyStartPortal: React.FC = ({children, key}) => {\r\n /// Portals children to be appended to startPortalDiv\r\n const startPortalDiv = document.getElementById(\"prebody_portal\")\r\n if (startPortalDiv === null) {\r\n throw new Error(\"Failed to find BodyStartPortal element.\")\r\n }\r\n return ReactDOM.createPortal(children, startPortalDiv, key)\r\n}\r\n","// extracted by mini-css-extract-plugin\nexport var Nav = \"NavDrawer-module--Nav--3pQ6l\";\nexport var logoContainer = \"NavDrawer-module--logoContainer--14BFt\";\nexport var links = \"NavDrawer-module--links--1V0ch\";\nexport var pageLinks = \"NavDrawer-module--pageLinks--32OA7\";\nexport var navLink = \"NavDrawer-module--navLink--1EIGf\";\nexport var active = \"NavDrawer-module--active--3aF0I\";\nexport var navLinkActive = \"NavDrawer-module--navLinkActive--1sQRE\";\nexport var drawerTriggerContainer = \"NavDrawer-module--drawerTriggerContainer--1t3KS\";\nexport var hamburgerIcon = \"NavDrawer-module--hamburgerIcon--3YLeY\";\nexport var phoneDetails = \"NavDrawer-module--phoneDetails--2FJqH\";\nexport var phoneIcon = \"NavDrawer-module--phoneIcon--1osPc\";\nexport var actionButtons = \"NavDrawer-module--actionButtons--3UlTv\";\nexport var subnav = \"NavDrawer-module--subnav--HQMtm\";\nexport var subnavbtn = \"NavDrawer-module--subnavbtn--1QdfG\";\nexport var subnavContent = \"NavDrawer-module--subnavContent--C7XZe\";\nexport var caretDown = \"NavDrawer-module--caretDown--4GDqW\";\nexport var NavDrawer = \"NavDrawer-module--NavDrawer--3_TbP\";\nexport var closeButton = \"NavDrawer-module--closeButton--3ZZX9\";\nexport var contentContainer = \"NavDrawer-module--contentContainer--1Yo8q\";\nexport var item = \"NavDrawer-module--item--j0sxI\";\nexport var itemEnter = \"NavDrawer-module--itemEnter--1qRkk\";\nexport var itemEnterActive = \"NavDrawer-module--itemEnterActive--3dJtm\";\nexport var animateItemsIn = \"NavDrawer-module--animateItemsIn--wyOdm\";\nexport var itemEnterDone = \"NavDrawer-module--itemEnterDone--1giuv\";\nexport var itemExit = \"NavDrawer-module--itemExit--1bWoP\";\nexport var itemExitActive = \"NavDrawer-module--itemExitActive--9kD51\";\nexport var phoneDetailsEnterActive = \"NavDrawer-module--phoneDetailsEnterActive--34Tda\";\nexport var animatePhoneIn = \"NavDrawer-module--animatePhoneIn--2sk8l\";\nexport var phoneDetailsEnterDone = \"NavDrawer-module--phoneDetailsEnterDone--3uYs6\";\nexport var shown = \"NavDrawer-module--shown--qg6ME\";","import React from \"react\"\r\nimport * as styles from \"./FadeIn.module.scss\"\r\n\r\ninterface FadeInProps {\r\n duration?: number,\r\n delay?: number,\r\n style?: React.CSSProperties\r\n}\r\nexport const FadeIn: React.FC = ({children, duration= 300, delay = 0, style}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}","// extracted by mini-css-extract-plugin\nexport var FadeIn = \"FadeIn-module--FadeIn--kZfrU\";\nexport var fadeIn = \"FadeIn-module--fadeIn--2WIWR\";","export default function _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}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\n\n// Name the function so it is clearer in the documentation\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React, { useEffect, useState } from \"react\"\r\nimport { BodyStartPortal } from \"../../BodyStartPortal\"\r\nimport { NavPageLinkData, NavPageLinksData, NavPhoneData } from \"./Nav\"\r\nimport * as styles from \"./NavDrawer.module.scss\"\r\nimport { getPathForLocale, mergeClassNames } from \"../../../util/util\"\r\nimport { FadeIn } from \"../../FadeIn\"\r\nimport { CSSTransition } from \"react-transition-group\"\r\nimport CrossIcon from \"../../../images/cross_icon.svg\"\r\nimport { Link } from \"gatsby\"\r\nimport { useAppContext } from \"../../AppContext\"\r\n\r\ninterface NavDrawerProps {\r\n links: NavPageLinksData,\r\n phone: NavPhoneData,\r\n onHide: VoidFunction\r\n}\r\nexport const NavDrawer: React.FC = ({ shown, ...props }) => {\r\n return (\r\n <>\r\n {(shown) ? (\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n ) : undefined}\r\n \r\n )\r\n}\r\n\r\nconst NavDrawerContent: React.FC = ({links, phone}) => {\r\n const [mounted, setMounted] = useState(false)\r\n const {currentLocale} = useAppContext()\r\n\r\n useEffect(() => {\r\n setMounted(true)\r\n }, [])\r\n\r\n return (\r\n
e.stopPropagation()}>\r\n \r\n Home\r\n \r\n\r\n {links.navLinks.map((link, index) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n Our Story\r\n \r\n\r\n \r\n News\r\n \r\n\r\n \r\n Join Our Team\r\n \r\n\r\n \r\n Contact\r\n \r\n\r\n \r\n
\r\n
Any questions? Give us a call!
\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\ninterface NavDrawerLinkProps {\r\n link: NavPageLinkData,\r\n className?: string\r\n}\r\nconst NavDrawerLink: React.FC = ({link, className}) => {\r\n const {currentLocale} = useAppContext()\r\n return (\r\n {link.title}\r\n )\r\n}","import React from \"react\"\r\nimport { IPhoneNumber } from \"../model/IPhoneNumber\"\r\n\r\ninterface BasicPhoneDetailsProps {\r\n className?: string,\r\n localNumber: IPhoneNumber,\r\n nationalNumber: IPhoneNumber\r\n}\r\nexport const BasicPhoneDetails: React.FC = ({className, localNumber, nationalNumber}) => {\r\n return (\r\n \r\n )\r\n}","import React, { useCallback, useState } from \"react\"\r\nimport { graphql, Link, useStaticQuery } from \"gatsby\"\r\nimport * as styles from \"./Nav.module.scss\"\r\nimport { useAppContext } from \"../../AppContext\"\r\nimport { getPathForLocale, triggerGtagEvent } from \"../../../util/util\"\r\nimport { GatsbyImage } from \"gatsby-plugin-image\"\r\nimport { IUrlSharp } from \"../../../model/IUrlSharp\"\r\nimport { IPhoneNumber } from \"../../../model/IPhoneNumber\"\r\nimport { RaisedButton } from \"../../button/RaisedButton\"\r\nimport { MyKindoLogin } from \"../../button/MyKindoLogin\"\r\nimport { ResponsiveState, useResponsiveState } from \"../../../hook/responsive_state\"\r\nimport PhoneIcon from \"../../../images/contact_icon_phone.svg\"\r\nimport HamburgerIcon from \"../../../images/hamburger_icon.svg\"\r\nimport { useWindowWidth } from \"../../../hook/window_size\"\r\nimport { NavDrawer } from \"./NavDrawer\"\r\nimport { BasicPhoneDetails } from \"../../BasicPhoneDetails\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport { MYKINDO_LOGIN_URL } from \"../../../config\"\r\n\r\nexport interface NavPhoneData {\r\n localNumber: IPhoneNumber,\r\n nationalNumber: IPhoneNumber\r\n}\r\n\r\nexport interface NavPageLinkData {\r\n id: string,\r\n title: string,\r\n page: {\r\n slug: string | null\r\n }\r\n}\r\n\r\nexport interface NavPageLinksData {\r\n navLinks: NavPageLinkData[]\r\n}\r\n\r\ninterface NavData {\r\n strapi: {\r\n globalConfig: {\r\n Favicon: {\r\n urlSharp: IUrlSharp\r\n },\r\n shrunkFavicon: {\r\n urlSharp: IUrlSharp\r\n },\r\n\r\n } & NavPhoneData & NavPageLinksData\r\n }\r\n}\r\nconst Nav: React.FC = () => {\r\n const {currentLocale} = useAppContext()\r\n\r\n const windowWidth = useWindowWidth()\r\n\r\n const doMinimiseMyKindoLogin = windowWidth <= 1118\r\n const doHideMyKindoLogin = windowWidth <= 1010\r\n\r\n const data = useStaticQuery(query)\r\n const config = data.strapi.globalConfig\r\n\r\n return (\r\n
\r\n
\r\n \r\n {(doMinimiseMyKindoLogin) ? (\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 triggerGtagEvent({\r\n action: \"click\",\r\n label: 'mykindo_login'\r\n })\r\n window.open(MYKINDO_LOGIN_URL, \"_blank\")\r\n }}>\r\n ORDER LUNCH\r\n \r\n\r\n {(doHideMyKindoLogin) ? undefined : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst NavPageLinks: React.FC<{ links: NavPageLinksData, phone: NavPhoneData }> = ({links, phone}) => {\r\n const [showingHamburgerMenu, setShowingHamburgerMenu] = useState(false)\r\n\r\n const windowWidth = useWindowWidth()\r\n const {currentLocale, currentSlug} = useAppContext()\r\n\r\n const dismissHamburgerMenuCallback = useCallback(() => {\r\n setShowingHamburgerMenu(false)\r\n }, [setShowingHamburgerMenu])\r\n\r\n if (windowWidth <= 770) {\r\n return (\r\n <>\r\n \r\n
\r\n setShowingHamburgerMenu(true)}\r\n />\r\n
\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n
\r\n {links.navLinks.map((link) => (\r\n \r\n {link.title.toUpperCase()}\r\n \r\n ))}\r\n
\r\n {/* \r\n CONTACT\r\n */}\r\n \r\n CONTACT\r\n \r\n
\r\n
\r\n ABOUT \r\n
\r\n OUR STORY\r\n NEWS\r\n JOIN OUR TEAM\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst NavPhoneDetails: React.FC = ({localNumber, nationalNumber}) => {\r\n const responsiveState = useResponsiveState()\r\n\r\n if (responsiveState < ResponsiveState.DESKTOP) {\r\n return (\r\n
\r\n call free\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Nav\r\n\r\nconst query = graphql`\r\n query {\r\n strapi {\r\n globalConfig {\r\n localNumber {\r\n ...phoneNumberFields\r\n }\r\n nationalNumber {\r\n ...phoneNumberFields\r\n }\r\n Favicon {\r\n url\r\n urlSharp {\r\n childImageSharp {\r\n gatsbyImageData(width: 100, quality: 100)\r\n }\r\n }\r\n }\r\n shrunkFavicon: Favicon {\r\n url\r\n urlSharp {\r\n childImageSharp {\r\n gatsbyImageData(width: 50, quality: 100)\r\n }\r\n }\r\n }\r\n \r\n navLinks {\r\n id\r\n title\r\n page {\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`","// extracted by mini-css-extract-plugin\nexport var Footer = \"Footer-module--Footer--3mrmS\";\nexport var section = \"Footer-module--section--3e-bV\";\nexport var QuickLinks = \"Footer-module--QuickLinks--20AOB\";\nexport var body = \"Footer-module--body--3jMEJ\";\nexport var kindoEnquiries = \"Footer-module--kindoEnquiries--19wf8\";\nexport var DownloadApp = \"Footer-module--DownloadApp--2Xy-T\";\nexport var appBadgeIconContainer = \"Footer-module--appBadgeIconContainer--Yl99U\";\nexport var appBadgeIcon = \"Footer-module--appBadgeIcon--1qo55\";\nexport var RaisedButton = \"Footer-module--RaisedButton--3BswL\";\nexport var sectionContent = \"Footer-module--sectionContent--l3SeI\";\nexport var heading = \"Footer-module--heading--Oh-H8\";\nexport var sectionFooter = \"Footer-module--sectionFooter--3SYDR\";\nexport var AboutEzlunch = \"Footer-module--AboutEzlunch--2MxTF\";\nexport var fullStoryLink = \"Footer-module--fullStoryLink--3efPp\";\nexport var quickLinks = \"Footer-module--quickLinks--IK_ck\";\nexport var quickLinkSection = \"Footer-module--quickLinkSection--JTTxY\";\nexport var quickLink = \"Footer-module--quickLink--3nki1\";\nexport var withUnderline = \"Footer-module--withUnderline--36_bk\";\nexport var kindoLogo = \"Footer-module--kindoLogo--3JMws\";\nexport var Connect = \"Footer-module--Connect--19etK\";\nexport var secondHeading = \"Footer-module--secondHeading--3CgX_\";","import { useAppContext } from \"../components/AppContext\"\r\n\r\nexport const useCurrentLocale = (): string => {\r\n return useAppContext().currentLocale\r\n}","import React from \"react\"\r\nimport { graphql, Link, useStaticQuery } from \"gatsby\"\r\nimport * as styles from \"./Footer.module.scss\"\r\nimport { getPathForLocale, mergeClassNames } from \"../../../util/util\"\r\nimport { IInternalPage } from \"../../../model/IInternalPage\"\r\nimport { useCurrentLocale } from \"../../../hook/locale\"\r\nimport { StaticImage } from \"gatsby-plugin-image\"\r\nimport { BasicPhoneDetails } from \"../../BasicPhoneDetails\"\r\nimport { IPhoneNumber } from \"../../../model/IPhoneNumber\"\r\nimport { IMetadata } from \"../../../model/IMetadata\"\r\nimport { SocialIcons } from \"../../social/SocialIcons\"\r\n\r\ninterface QuickLinkType {\r\n id: string,\r\n title: string,\r\n internalPageLink: {\r\n slug: string | null\r\n } | null,\r\n externalPageLink: string | null\r\n}\r\n\r\ninterface QuickLinkSectionType {\r\n links: QuickLinkType[]\r\n}\r\n\r\nexport interface FooterProps {\r\n aboutEzlunch: string,\r\n aboutEzlunchPage: IInternalPage,\r\n socialsPitch: string,\r\n kindoEnquiriesUrl: string,\r\n quickLinkSections: QuickLinkSectionType[],\r\n pageSeo: IMetadata\r\n}\r\nexport const Footer: React.FC = ({aboutEzlunch, aboutEzlunchPage, kindoEnquiriesUrl, socialsPitch, quickLinkSections, pageSeo}) => {\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
download our app
\r\n
\r\n
Fast ordering, on the go!
\r\n
\r\n
window.open('https://apps.apple.com/nz/app/mykindo/id1445622107', \"_blank\")}>\r\n \r\n
\r\n
window.open('https://play.google.com/store/apps/details?id=nz.co.tgcl.mykindo&hl=en_NZ&gl=US', \"_blank\")}>\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\ninterface AboutEzlunchSectionProps {\r\n aboutEzlunch: string,\r\n aboutEzlunchPage: IInternalPage\r\n}\r\nconst AboutEzlunchSection: React.FC = ({aboutEzlunch, aboutEzlunchPage}) => {\r\n const currentLocale = useCurrentLocale()\r\n\r\n return (\r\n
\r\n
\r\n
more about ezlunch
\r\n
\r\n
\r\n {aboutEzlunch}\r\n
\r\n\r\n
\r\n Read our story\r\n
\r\n
\r\n
\r\n\r\n
\r\n Copyright TGCL - The Growth Collective Ltd {new Date().getFullYear()}\r\n
\r\n
\r\n )\r\n}\r\n\r\ninterface QuickLinksSectionProps {\r\n quickLinksSections: QuickLinkSectionType[],\r\n kindoEnquiriesUrl: string,\r\n}\r\nconst QuickLinksSection: React.FC = ({quickLinksSections, kindoEnquiriesUrl}) => {\r\n return (\r\n
\r\n
\r\n
quicklinks
\r\n
\r\n
\r\n \r\n {(quickLinksSections.length > 1) ? : undefined}\r\n {(quickLinksSections.length > 2) ? : undefined}\r\n {(quickLinksSections.length > 3) ? : undefined}\r\n
\r\n\r\n
window.open(kindoEnquiriesUrl, \"_self\")}>\r\n Enquire about
Kindo online school
payment system\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst QuickLinksLinkSection: React.FC = ({links,}) => {\r\n return (\r\n
\r\n {links.map((link) => (\r\n \r\n ))}\r\n
\r\n )\r\n}\r\nconst QuickLink: React.FC = ({title, internalPageLink, externalPageLink}) => {\r\n const currentLocale = useCurrentLocale()\r\n\r\n return (\r\n
\r\n {(internalPageLink !== null) ? (\r\n {title}\r\n ) : (\r\n {title}\r\n )}\r\n
\r\n )\r\n}\r\n\r\ninterface ConnectSectionData {\r\n strapi: {\r\n globalConfig: {\r\n localNumber: IPhoneNumber,\r\n nationalNumber: IPhoneNumber,\r\n helpdeskEmail: string\r\n }\r\n }\r\n}\r\ninterface ConnectSectionProps {\r\n socialsPitch: string,\r\n pageSeo: IMetadata\r\n}\r\nconst ConnectSection: React.FC = ({socialsPitch, pageSeo}) => {\r\n const data = useStaticQuery(connectSectionQuery)\r\n\r\n const {localNumber, nationalNumber, helpdeskEmail} = data.strapi.globalConfig\r\n\r\n return (\r\n
\r\n
\r\n
connect
\r\n
\r\n \r\n
\r\n {helpdeskEmail}\r\n
\r\n
\r\n\r\n
share the love
\r\n
{socialsPitch}
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nconst connectSectionQuery = graphql`\r\nquery FooterConnectSectionQuery {\r\n strapi {\r\n globalConfig {\r\n localNumber {\r\n ...phoneNumberFields\r\n }\r\n nationalNumber {\r\n ...phoneNumberFields\r\n }\r\n helpdeskEmail\r\n }\r\n }\r\n}\r\n`\r\n\r\nexport const footerFragment = graphql`\r\n fragment footerFragment on Strapi_ComponentSubcomponentsFooter {\r\n socialsPitch\r\n aboutEzlunch\r\n aboutEzlunchPage {\r\n slug\r\n }\r\n kindoEnquiriesUrl\r\n quickLinkSections:QuickLinkSection {\r\n links: QuickLink {\r\n externalPageLink\r\n id\r\n title\r\n internalPageLink {\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n`","import React from \"react\"\r\nimport { Helmet } from \"react-helmet\"\r\nimport * as styles from \"./Layout.module.scss\"\r\nimport Nav from \"./nav/Nav\"\r\nimport { Footer } from \"./footer/Footer\"\r\nimport { graphql, useStaticQuery } from \"gatsby\"\r\nimport { IMetadata } from \"../../model/IMetadata\"\r\n\r\ninterface LayoutProps {\r\n pageSeo: IMetadata\r\n}\r\nconst Layout: React.FC = ({children, pageSeo}) => {\r\n const footerData = useStaticQuery(layoutQuery);\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 )\r\n}\r\n\r\nexport default Layout\r\n\r\n\r\nconst layoutQuery = graphql`\r\nquery LayoutQuery {\r\n strapi {\r\n globalConfig {\r\n footer {\r\n ...footerFragment\r\n }\r\n }\r\n }\r\n}\r\n`","// extracted by mini-css-extract-plugin\nexport var Layout = \"Layout-module--Layout--3b8Zb\";","import * as React from \"react\"\r\n\r\nimport * as styles from \"./Section.module.scss\"\r\nimport { mergeClassNames } from \"../../util/util\"\r\n\r\ninterface SectionProps {\r\n className?: string\r\n}\r\nconst Section: React.FC = ({ children, className }) => {\r\n return
{children}
\r\n}\r\n\r\nexport default Section\r\n","// extracted by mini-css-extract-plugin\nexport var sectionContainer = \"Section-module--sectionContainer---Xp2D\";","export enum ShareIconType {\r\n Facebook = \"facebook\",\r\n Linkedin = \"linkedin\",\r\n Pinterest = \"pinterest\",\r\n Reddit = \"reddit\",\r\n Twitter = \"twitter\",\r\n Email = \"email\"\r\n}","import { ShareIconType } from \"../ShareIconType\"\r\nimport { triggerGtagEvent } from \"../../../util/util\"\r\n\r\nexport interface ShareIconProps {\r\n size?: number,\r\n className?: string,\r\n onClick?: VoidFunction,\r\n scaleOnTouchScreen?: boolean\r\n}\r\n\r\nexport const TOUCHSCREEN_SIZE_SCALE_AMOUNT = 1.2\r\n\r\nexport const isTouchScreen = (): boolean => {\r\n return (typeof window !== 'undefined') && window.matchMedia(\"(hover: none)\").matches\r\n}\r\n\r\nexport const getActualSize = (baseSize: number, scaleOnTouchScreen: boolean): number => {\r\n return (scaleOnTouchScreen && isTouchScreen()) ? baseSize * TOUCHSCREEN_SIZE_SCALE_AMOUNT : baseSize\r\n}\r\n\r\nexport const logShareClick = (shareType: ShareIconType): void => {\r\n triggerGtagEvent({\r\n action: \"click\",\r\n category: \"share_icon\",\r\n label: shareType\r\n })\r\n}","// extracted by mini-css-extract-plugin\nexport var Icon = \"common-module--Icon--OhIU1\";\nexport var RaisedButton = \"common-module--RaisedButton--2YyFs\";","import React, { useCallback } from \"react\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaFacebook } from \"@react-icons/all-files/fa/FaFacebook\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport { FACEBOOK_APP_ID } from \"../../../config\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\nexport const FacebookShareIcon: React.FC = ({size = 20, className, onClick, scaleOnTouchScreen=true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n const currentUrlEncoded = encodeURIComponent(window.location.origin)\r\n\r\n const url = `https://www.facebook.com/dialog/share?app_id=${FACEBOOK_APP_ID}&display=page&href=${currentUrlEncoded}&redirect_uri=${currentUrlEncoded}`\r\n\r\n logShareClick(ShareIconType.Facebook)\r\n window.open(url, '_self')\r\n }, [onClick])\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useCallback } from \"react\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaLinkedin } from \"@react-icons/all-files/fa/FaLinkedin\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\nexport const LinkedinShareIcon: React.FC = ({size = 20, className, onClick, scaleOnTouchScreen=true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n const currentUrlEncoded = encodeURIComponent(window.location.origin)\r\n\r\n const url = `https://www.linkedin.com/sharing/share-offsite/?url=${currentUrlEncoded}`\r\n\r\n logShareClick(ShareIconType.Linkedin)\r\n window.open(url, '_blank')\r\n }, [onClick])\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useCallback } from \"react\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaPinterest } from \"@react-icons/all-files/fa/FaPinterest\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\ninterface PinterestShareIconProps extends ShareIconProps {\r\n mediaUrl: string,\r\n description?: string\r\n}\r\nexport const PinterestShareIcon: React.FC = ({size = 20, className, onClick, mediaUrl, description, scaleOnTouchScreen=true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n const currentUrlEncoded = encodeURIComponent(window.location.origin)\r\n let descriptionPart = ''\r\n if (description) {\r\n descriptionPart = `&description=${encodeURIComponent(description)}`\r\n }\r\n\r\n const url = `https://www.pinterest.nz/pin-builder/?url=${currentUrlEncoded}&media=${encodeURIComponent(mediaUrl)}${descriptionPart}&method=button`\r\n\r\n logShareClick(ShareIconType.Pinterest)\r\n window.open(url, '_blank')\r\n }, [onClick])\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useCallback } from \"react\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaReddit } from \"@react-icons/all-files/fa/FaReddit\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\ninterface RedditShareIconProps extends ShareIconProps {\r\n title?: string\r\n}\r\nexport const RedditShareIcon: React.FC = ({size = 20, className, onClick, title, scaleOnTouchScreen=true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n const currentUrlEncoded = encodeURIComponent(window.location.origin)\r\n let titlePart = ''\r\n if (title) {\r\n titlePart = `&title=${encodeURIComponent(title)}`\r\n }\r\n\r\n const url = `https://www.reddit.com/submit?url=${currentUrlEncoded}${titlePart}`\r\n\r\n logShareClick(ShareIconType.Reddit)\r\n window.open(url, '_blank')\r\n }, [onClick])\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useCallback } from \"react\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaTwitter } from \"@react-icons/all-files/fa/FaTwitter\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\ninterface TwitterShareIconProps extends ShareIconProps {\r\n text?: string\r\n}\r\nexport const TwitterShareIcon: React.FC = ({size = 20, className, onClick, text, scaleOnTouchScreen=true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n const currentUrlEncoded = encodeURIComponent(window.location.origin)\r\n let titlePart = ''\r\n if (text) {\r\n titlePart = `&text=${encodeURIComponent(text)}`\r\n }\r\n\r\n const url = `https://twitter.com/intent/tweet?url=${currentUrlEncoded}${titlePart}`\r\n\r\n logShareClick(ShareIconType.Twitter)\r\n window.open(url, '_blank')\r\n }, [onClick])\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useCallback } from \"react\"\r\nimport { mergeClassNames } from \"../../../util/util\"\r\nimport * as styles from \"./common.module.scss\"\r\nimport {getActualSize, logShareClick, ShareIconProps} from \"./common\"\r\nimport { FaEnvelope } from \"@react-icons/all-files/fa/FaEnvelope\"\r\nimport { ShareIconType } from \"../ShareIconType\"\r\n\r\ninterface EmailShareIconProps extends ShareIconProps {\r\n subject?: string,\r\n body?: string\r\n}\r\nexport const EmailShareIcon: React.FC = ({size = 20, className, onClick, subject, body, scaleOnTouchScreen = true}) => {\r\n const onClickCallback = useCallback(() => {\r\n if (onClick) {\r\n onClick()\r\n }\r\n\r\n let subjectPart = ''\r\n if (subject) {\r\n subjectPart = `&subject=${encodeURIComponent(subject)}`\r\n }\r\n\r\n let bodyPart = window.location.href\r\n if (body) {\r\n bodyPart = `${body}\\n${bodyPart}`\r\n }\r\n\r\n const url = `mailto:?body=${encodeURIComponent(bodyPart)}${subjectPart}`\r\n\r\n logShareClick(ShareIconType.Email)\r\n window.open(url, '_self')\r\n }, [onClick])\r\n\r\n\r\n return (\r\n \r\n )\r\n}","import { ShareIconType } from \"./ShareIconType\"\r\nimport { IMetadata } from \"../../model/IMetadata\"\r\nimport React from \"react\"\r\nimport { graphql, useStaticQuery } from \"gatsby\"\r\nimport { FacebookShareIcon } from \"./icon/FacebookShareIcon\"\r\nimport { LinkedinShareIcon } from \"./icon/LinkedinShareIcon\"\r\nimport { ClientOnlyRenderable } from \"../ClientOnlyRenderable\"\r\nimport { PinterestShareIcon } from \"./icon/PinterestShareIcon\"\r\nimport { getAbsoluteUrl_CLIENT_ONLY } from \"../../util/util\"\r\nimport { RedditShareIcon } from \"./icon/RedditShareIcon\"\r\nimport { TwitterShareIcon } from \"./icon/TwitterShareIcon\"\r\nimport { EmailShareIcon } from \"./icon/EmailShareIcon\"\r\n\r\ninterface SocialIconProps {\r\n linkType: ShareIconType,\r\n size: number,\r\n pageSeo: IMetadata\r\n}\r\ninterface SocialIconData {\r\n strapi: {\r\n globalConfig: {\r\n Metadata: IMetadata,\r\n titleSuffix: string\r\n }\r\n }\r\n}\r\nexport const SocialIcon: React.FC = ({linkType, size, pageSeo}) => {\r\n const data = useStaticQuery(query)\r\n const {Metadata: defaultMetadata, titleSuffix} = data.strapi.globalConfig\r\n\r\n const shareImageUrlPath = pageSeo.shareImage?.urlSharp.staticURL ?? defaultMetadata.shareImage?.urlSharp.staticURL\r\n let shareTitle = pageSeo.metaTitle ?? defaultMetadata.metaTitle ?? undefined\r\n if (shareTitle !== undefined) {\r\n shareTitle = `${shareTitle} | ${titleSuffix}`\r\n }\r\n\r\n const shareDescription = pageSeo.metaDescription ?? defaultMetadata.metaDescription ?? undefined\r\n\r\n switch (linkType) {\r\n case ShareIconType.Facebook:\r\n return \r\n case ShareIconType.Linkedin:\r\n return \r\n case ShareIconType.Pinterest:\r\n if (shareImageUrlPath === undefined) {\r\n return <>\r\n } else {\r\n return (\r\n \r\n {() => (\r\n \r\n )}\r\n \r\n )\r\n }\r\n case ShareIconType.Reddit:\r\n return \r\n case ShareIconType.Twitter:\r\n return \r\n case ShareIconType.Email:\r\n return \r\n default:\r\n throw new Error(`Unsupported share icon type: ${linkType}`)\r\n }\r\n}\r\n\r\nconst query = graphql`\r\n query {\r\n strapi {\r\n globalConfig {\r\n titleSuffix\r\n Metadata {\r\n metaTitle\r\n metaDescription\r\n shareImage {\r\n url\r\n urlSharp {\r\n staticURL\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`","import React from \"react\"\r\nimport { ShareIconType } from \"./ShareIconType\"\r\nimport { IMetadata } from \"../../model/IMetadata\"\r\nimport { graphql, useStaticQuery } from \"gatsby\"\r\nimport * as styles from \"./SocialIcons.module.scss\"\r\nimport { SocialIcon } from \"./SocialIcon\"\r\n\r\ninterface SocialIconsProps {\r\n pageSeo: IMetadata,\r\n}\r\ninterface SocialIconsData {\r\n strapi: {\r\n globalConfig: {\r\n socialLinks: { type: ShareIconType }[]\r\n }\r\n }\r\n}\r\nexport const SocialIcons: React.FC = ({pageSeo}) => {\r\n const data = useStaticQuery(query)\r\n const {socialLinks} = data.strapi.globalConfig\r\n\r\n return (\r\n
\r\n {(socialLinks.map(({type: linkType}, index) => (\r\n \r\n )))}\r\n
\r\n )\r\n}\r\n\r\nconst query = graphql`\r\n query {\r\n strapi {\r\n globalConfig {\r\n socialLinks {\r\n type\r\n }\r\n }\r\n }\r\n } \r\n`","// extracted by mini-css-extract-plugin\nexport var sectionIcons = \"SocialIcons-module--sectionIcons--1jCJS\";","export const IS_PRODUCTION = true;\r\nexport const MYKINDO_ATMY_API = IS_PRODUCTION ? \"https://api.shop.kindo.co.nz/api/schools?brand_name=ezlunch\" : \"https://test.api.shop.kindo.co.nz/api/schools?brand_name=ezlunch\"\r\nexport const MYKINDO_BASE_URL = IS_PRODUCTION ? \"https://shop.kindo.co.nz/shop\" : \"https://test.shop.kindo.co.nz/shop\"\r\nexport const MYKINDO_LOGIN_URL = IS_PRODUCTION ? \"https://shop.kindo.co.nz/app/login\" : \"https://test.shop.kindo.co.nz/app/login\"\r\nexport const MYKINDO_JOIN_URL = IS_PRODUCTION ? \"https://shop.kindo.co.nz/app/login#register\" : \"https://test.shop.kindo.co.nz/app/login#register\"\r\nexport const MYKINDO_ATMY_URL = IS_PRODUCTION ? \"https://shop.kindo.co.nz/shop/atmy.shtml\" : \"https://test.shop.kindo.co.nz/shop/atmy.shtml\"\r\nexport const FACEBOOK_APP_ID = \"350010150010705\"\r\n\r\nexport const EMAIL_SCHOOL_SIGNUP_PITCH: string = (() => {\r\n const subject = \"I’ve seen this lunch service that would be great at our school\"\r\n const body = `I’ve just been investigating ezlunch, who work with local cafes and caterers to provide fresh made food for school lunches.\\\r\n They’re a NZ company that operates nationwide, and I think this is something that would be great at our school!\r\n There’s more info on their website www.ezlunch.co.nz. Thanks for taking a look.`\r\n\r\n return `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`\r\n})()\r\n\r\nexport const SCHOOL_ALIAS_LIST: [string, string][] = [['st ', 'saint '], ['mt ', 'mount '], ['pt ', 'point '], ['south ', 'sth '], ['north ', 'nth ']]","export const getStrapiImageUrl = (url: string): string => {\r\n return `${process.env.GATSBY_STRAPI_URL}${url}`\r\n}\r\n\r\nexport const DEFAULT_LOCALE = \"en\"\r\n\r\nexport const getPathForLocale = (locale: string, path: string | null, forceLocale = false): string => {\r\n path = path ?? ''\r\n\r\n if (!forceLocale && locale === DEFAULT_LOCALE) {\r\n return `${(path.startsWith('/')) ? '' : '/'}${path}`\r\n }\r\n\r\n return `/${locale}${(path.startsWith('/')) ? '' : '/'}${path}`\r\n}\r\n\r\nexport const getAbsoluteUrl_CLIENT_ONLY = (href: string): string => {\r\n return new URL(href, window.location.href).href\r\n}\r\n\r\nexport const mergeClassNames = (...classNames: (string | undefined | null)[]): string => {\r\n const actualNames = classNames.filter((name) => name !== undefined && name !== null && name !== '')\r\n return actualNames.join(' ')\r\n}\r\n\r\nexport const pathify = function() { //factory function for new pathify\r\n /*\r\n * from server class tainted.Pathification(object):\r\n \"\"\"\r\n Normalise a string for use in eg in an (unescaped) URL or anywhere else that we want a very tame string\r\n Replacement for original which would reject strings with chars it didn't know about -this version just strips them\r\n Note: caution should be exercised when applying this routine to keys (or anything else unique).\r\n There is no guarauntee that two unique strings won't pathify to the same string !! (eg we simply drop single quote)\r\n\r\n \"\"\"\r\n IF MODIFYING THIS CODE -YOU MUST ALSO MODIFY THE SERVER AND kindo_webui3 VERSIONS\r\n */\r\n const subs: [RegExp, string][] = [\r\n [new RegExp(\"-+\",\"g\"),\" \"], /*dashes become one space*/\r\n [new RegExp(\" +\",\"g\"),\"_\"], /*one or more spaces reduced to single underscore*/\r\n [new RegExp(\"&\",\"g\"),\"_and_\"], /*ampersand to _and_ */\r\n [new RegExp(\"@\",\"g\"),\"_at_\"], /* /@ to _at_*/\r\n [new RegExp(\"\\\\.\",\"g\"),\"_dot_\"], /* . to _dot_ (note not identical to python -extra espace char needed) */\r\n [new RegExp(\"[^a-zA-Z0-9_]+\",\"g\"),\"\"] /* (finally -anything other than alphanum and underscore removed*/\r\n ];\r\n return function(strDirty: string): string {\r\n let strMut = strDirty; //could not bring myself to repeatedly mutate the argument\r\n for (let i=0;i {\r\n if (window.gtag) {\r\n window.gtag(\"event\", action, {\r\n 'event_category': category,\r\n 'event_label': label,\r\n 'value': value\r\n })\r\n }\r\n}","// extracted by mini-css-extract-plugin\nexport var MyKindoLogin = \"MyKindoLogin-module--MyKindoLogin--iMHu0\";\nexport var RaisedButton = \"MyKindoLogin-module--RaisedButton--c9mc7\";\nexport var minimised = \"MyKindoLogin-module--minimised--1I3MP\";\nexport var maximised = \"MyKindoLogin-module--maximised--_O4TI\";\nexport var clipon = \"MyKindoLogin-module--clipon--1yAHW\";\nexport var clipImage = \"MyKindoLogin-module--clipImage--2bBbR\";\nexport var clipContent = \"MyKindoLogin-module--clipContent--b_4Xl\";\nexport var clipLogo = \"MyKindoLogin-module--clipLogo--XxJC-\";\nexport var content = \"MyKindoLogin-module--content--cH0RB\";\nexport var subtitle = \"MyKindoLogin-module--subtitle--iXkyj\";\nexport var bold = \"MyKindoLogin-module--bold--19pB1\";","var React = require('react');\n\nfunction ContactIconPhone (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"id\":\"background\",\"key\":0},React.createElement(\"g\",null,[React.createElement(\"path\",{\"style\":{\"fill\":\"#56942f\",\"stroke\":\"#56942f\",\"strokeWidth\":\"3.14\",\"strokeMiterlimit\":\"10\"},\"d\":\"M61.26,57.72c1.97-2.4,2.81-4.14,2.64-5.49c-0.2-1.58-1.84-3.31-5.17-5.42l-0.53-0.34\\r\\n\\t\\t\\tc-4.77-3.03-6.94-4.42-8.8-4.3c-1.16,0.07-2.26,0.71-4.02,1.94c-2.67,1.87-4.88,3.19-6.92,2.94c-5.83-0.72-12.82-8.58-13.58-10.44\\r\\n\\t\\t\\tc-0.52-1.27-2.66-5.2,2.5-10.73c2.44-2.62-1.58-8.18-5.14-13.09l-0.01-0.02c-0.59-0.82-1.15-1.59-1.7-2.37l-0.09-0.14\\r\\n\\t\\t\\tc-0.05-0.08-1.22-1.99-3.14-2.13c-0.14-0.01-0.28-0.01-0.43,0c-1.86,0.12-3.79,1.8-5.09,3.18C4.82,18.78,5.58,27.1,14.4,40.04\\r\\n\\t\\t\\tc8.2,12.02,23.03,20.1,29.15,21.75c1.64,0.44,4.24,0.93,7.27,0.74c0,0,0,0,0,0C53.95,62.33,58.29,61.34,61.26,57.72z\",\"key\":0}),React.createElement(\"rect\",{\"fill\":\"none\",\"width\":\"70\",\"height\":\"70\",\"key\":1})])),React.createElement(\"g\",{\"id\":\"Layer_1\",\"key\":1}),React.createElement(\"g\",{\"id\":\"Layer_3\",\"key\":2})]);\n}\n\nContactIconPhone.defaultProps = {\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 70 70\",\"style\":{\"enableBackground\":\"new 0 0 70 70\"},\"xmlSpace\":\"preserve\"};\n\nmodule.exports = ContactIconPhone;\n\nContactIconPhone.default = ContactIconPhone;\n","var React = require('react');\n\nfunction CrossIcon (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"metadata\",{\"id\":\"metadata23\",\"key\":0},React.createElement(\"rdf:RDF\",null,React.createElement(\"cc:Work\",{},[React.createElement(\"dc:format\",{\"key\":0},\"image/svg+xml\"),React.createElement(\"dc:type\",{\"key\":1}),React.createElement(\"dc:title\",{\"key\":2})]))),React.createElement(\"defs\",{\"id\":\"defs21\",\"key\":1}),React.createElement(\"switch\",{\"id\":\"switch16\",\"key\":2},React.createElement(\"g\",{\"id\":\"g14\"},React.createElement(\"g\",{\"id\":\"g12\"},React.createElement(\"g\",{\"id\":\"g862\",\"transform\":\"matrix(1.1528042,-1.1525385,1.1528042,1.1525385,-15.013632,11.502017)\"},[React.createElement(\"g\",{\"id\":\"g10\",\"key\":0},React.createElement(\"path\",{\"id\":\"path8\",\"d\":\"m 7.84,10.822 h 2.96 1.408 2.954 v 1.351 H 12.208 10.8 7.84 Z\",\"style\":{\"fill\":\"#7AAA31\"}})),React.createElement(\"g\",{\"id\":\"g10-7\",\"transform\":\"rotate(90,11.49925,11.49825)\",\"key\":1},React.createElement(\"path\",{\"id\":\"path8-8\",\"d\":\"m 7.84,10.822 h 2.96 1.408 2.954 v 1.351 H 12.208 10.8 7.84 Z\",\"style\":{\"fill\":\"#7AAA31\"}}))]))))]);\n}\n\nCrossIcon.defaultProps = {\"version\":\"1.1\",\"id\":\"Layer_1\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"23px\",\"height\":\"23px\",\"viewBox\":\"0 0 23 23\",\"enableBackground\":\"new 0 0 23 23\",\"xmlSpace\":\"preserve\"};\n\nmodule.exports = CrossIcon;\n\nCrossIcon.default = CrossIcon;\n","var React = require('react');\n\nfunction HamburgerIcon (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"id\":\"icon-hamburger-dark\",\"fill\":\"#000000\"},React.createElement(\"path\",{\"d\":\"M10.0714286,20 L130.928571,20 C136.488,20 141,15.52 141,10 C141,4.48 136.488,0 130.928571,0 L10.0714286,0 C4.512,0 0,4.48 0,10 C0,15.52 4.512,20 10.0714286,20 L10.0714286,20 Z M130.928571,40 L10.0714286,40 C4.512,40 0,44.48 0,50 C0,55.52 4.512,60 10.0714286,60 L130.928571,60 C136.488,60 141,55.52 141,50 C141,44.48 136.488,40 130.928571,40 L130.928571,40 Z M130.928571,80 L10.0714286,80 C4.512,80 0,84.48 0,90 C0,95.52 4.512,100 10.0714286,100 L130.928571,100 C136.488,100 141,95.52 141,90 C141,84.48 136.488,80 130.928571,80 L130.928571,80 Z\",\"id\":\"Shape\"})));\n}\n\nHamburgerIcon.defaultProps = {\"viewBox\":\"0 0 141 100\",\"version\":\"1.1\"};\n\nmodule.exports = HamburgerIcon;\n\nHamburgerIcon.default = HamburgerIcon;\n"],"sourceRoot":""}