{"version":3,"file":"index-DCty1Io1.js","sources":["../../../app/javascript/src/shoppe/elements/CartButton/index.tsx","../../../app/javascript/src/shoppe/elements/NavToggle/index.tsx","../../../app/javascript/src/explore/services/getSiteHeader/index.ts","../../../app/javascript/src/explore/elements/ScrollLink/index.jsx"],"sourcesContent":["import * as React from 'react';\nimport cls from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCartShopping } from '@fortawesome/pro-light-svg-icons';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { open } from 'src/explore/compositions/Cart/actions';\nimport { useRoutes } from 'src/explore/hooks/useRoutes';\n\nimport styles from './index.module.sass';\n\nexport const CartButton = ({ className }: { className?: string }) => {\n const dispatch = useDispatch();\n const routes = useRoutes();\n\n const cart = useSelector(( state: any ) => state.data.cart.data );\n const count = cart?.number_of_items || 0;\n\n const handleClick = ( e: React.MouseEvent ) => {\n e.preventDefault();\n\n dispatch( open());\n };\n\n return (\n \n \n\n {count > 0 && {`(${count})`}}\n \n );\n};\n","import * as React from 'react';\nimport cls from 'classnames';\n\nimport styles from './index.module.sass';\n\ninterface Props {\n className?: {\n container?: string;\n button?: string;\n };\n isActive: boolean;\n onClick: () => void;\n}\n\nexport const NavToggle: React.FC = ({ className, isActive, onClick }) => (\n \n \n
\n);\n","const height = () => {\n const header: HTMLElement = document.querySelector( '.js__header' );\n const navigation: HTMLElement = document.querySelector( '.js__header-navigation' );\n\n if ( header && navigation ) {\n const navigationParentStyle = getComputedStyle( navigation.parentElement );\n\n // add link bar if always visible (desktop)\n if ( navigationParentStyle.position === 'static' ) {\n return header.offsetHeight + navigation.offsetHeight;\n }\n return header.offsetHeight;\n }\n return 0;\n};\n\nexport const getSiteHeader = {\n height,\n};\n","import React from 'react';\n\nimport { getSiteHeader } from 'src/explore/services/getSiteHeader';\n\nconst easeOutCubic = ( t ) => ( t - 1 ) ** 3 + 1;\n\nexport const ScrollLink = ({ children, className = '', target, targetOffset, ...props }) => {\n const handleClick = ( e ) => {\n e.preventDefault();\n\n // set scroll target to position\n let scrollTo = target;\n if ( typeof target !== 'number' ) {\n // set scroll target to element\n if ( document.querySelector( target )) {\n scrollTo = document.querySelector( target ).getBoundingClientRect().top + window.pageYOffset;\n }\n // set scroll target to numerical position in string if available or 0\n else {\n scrollTo = isNaN( Number( target )) ? 0 : Number( target );\n }\n }\n\n // offset (for sticky headers, etc)\n if ( targetOffset === 'header--explore' ) {\n scrollTo -= getSiteHeader.height();\n } else if ( typeof targetOffset === 'string' ) {\n scrollTo -= document.querySelector( targetOffset ).offsetHeight;\n }\n\n // if the scroll target is too close to the bottom of the page to be scrolled to the top of the window, adjust the scroll target to the maximum scroll value\n if ( scrollTo > document.documentElement.scrollHeight - window.innerHeight ) {\n scrollTo = document.documentElement.scrollHeight - window.innerHeight;\n }\n\n // calculate scroll distance\n const startPosition = window.pageYOffset;\n const distance = scrollTo - startPosition;\n\n // animate scroll\n const duration = 200;\n let start = null;\n const animate = ( timestamp ) => {\n if ( !start ) {\n start = timestamp;\n }\n const progress = timestamp - start;\n\n // step\n if ( progress < duration ) {\n window.scrollTo(\n 0,\n Math.floor( startPosition + easeOutCubic( progress / duration ) * distance )\n );\n\n requestAnimationFrame( animate );\n }\n\n // finish\n else {\n window.scrollTo( 0, scrollTo );\n }\n };\n requestAnimationFrame( animate );\n };\n\n return (\n \n {children}\n \n );\n};\n"],"names":["CartButton","className","dispatch","useDispatch","routes","useRoutes","cart","useSelector","state","count","handleClick","e","open","React.createElement","cls","styles","FontAwesomeIcon","faCartShopping","NavToggle","isActive","onClick","height","header","navigation","getSiteHeader","easeOutCubic","ScrollLink","children","target","targetOffset","props","scrollTo","startPosition","distance","duration","start","animate","timestamp","progress","React"],"mappings":"kZAWaA,EAAa,CAAC,CAAE,UAAAC,KAAwC,CACnE,MAAMC,EAAWC,EAAY,EACvBC,EAASC,EAAU,EAEnBC,EAAOC,EAAcC,GAAgBA,EAAM,KAAK,KAAK,IAAK,EAC1DC,GAAQH,GAAA,YAAAA,EAAM,kBAAmB,EAEjCI,EAAgBC,GAAyB,CAC7CA,EAAE,eAAe,EAEjBT,EAAUU,GAAM,CAClB,EAGE,OAAAC,EAAA,cAAC,IAAA,CACC,UAAWC,EAAKb,EAAWc,EAAO,KAAM,+CAAgD,EACxF,KAAMX,EAAO,SAAS,KAAK,EAC3B,QAASM,CAAA,EAERG,EAAA,cAAAG,EAAA,CAAgB,UAAU,mBAAmB,KAAMC,EAAgB,EAEnER,EAAQ,GAAMI,gBAAA,OAAA,CAAK,UAAU,kCAAoC,EAAA,IAAIJ,CAAK,GAAI,CACjF,CAEJ,2FCrBaS,EAA6B,CAAC,CAAE,UAAAjB,EAAW,SAAAkB,EAAU,QAAAC,CAAQ,IACvEP,gBAAA,MAAA,CAAI,UAAWZ,GAAA,YAAAA,EAAW,SACzB,EAAAY,EAAA,cAAC,SAAA,CACC,UAAWC,EACTC,EAAO,OACP,4CACAd,GAAA,YAAAA,EAAW,OACX,CACE,CAACc,EAAO,MAAM,EAAGI,CAAA,CAErB,EACA,KAAK,SACL,QAAAC,EACA,aAAW,0BAAA,kBAEV,OAAK,CAAA,UAAW,GAAGL,EAAO,IAAI,oBAAsB,CAAA,CACvD,CACF,EC/BIM,EAAS,IAAM,CACb,MAAAC,EAAsB,SAAS,cAAe,aAAc,EAC5DC,EAA0B,SAAS,cAAe,wBAAyB,EAEjF,OAAKD,GAAUC,EACiB,iBAAkBA,EAAW,aAAc,EAG9C,WAAa,SAC/BD,EAAO,aAAeC,EAAW,aAEnCD,EAAO,aAET,CACT,EAEaE,EAAgB,CAC3B,OAAAH,CACF,ECdMI,EAAiB,IAAS,EAAI,IAAO,EAAI,EAElCC,EAAa,CAAC,CAAE,SAAAC,EAAU,UAAA1B,EAAY,GAAI,OAAA2B,EAAQ,aAAAC,EAAc,GAAGC,KAAY,CACpF,MAAApB,EAAgBC,GAAO,CAC3BA,EAAE,eAAe,EAGjB,IAAIoB,EAAWH,EACV,OAAOA,GAAW,WAEhB,SAAS,cAAeA,CAAO,EAClCG,EAAW,SAAS,cAAeH,CAAO,EAAE,wBAAwB,IAAM,OAAO,YAIjFG,EAAW,MAAO,OAAQH,CAAO,CAAC,EAAI,EAAI,OAAQA,CAAO,GAKxDC,IAAiB,kBACpBE,GAAYP,EAAc,OAAO,EACvB,OAAOK,GAAiB,WACtBE,GAAA,SAAS,cAAeF,CAAa,EAAE,cAIhDE,EAAW,SAAS,gBAAgB,aAAe,OAAO,cAClDA,EAAA,SAAS,gBAAgB,aAAe,OAAO,aAI5D,MAAMC,EAAgB,OAAO,YACvBC,EAAWF,EAAWC,EAGtBE,EAAW,IACjB,IAAIC,EAAQ,KACN,MAAAC,EAAYC,GAAe,CACzBF,IACIA,EAAAE,GAEV,MAAMC,EAAWD,EAAYF,EAGxBG,EAAWJ,GACP,OAAA,SACL,EACA,KAAK,MAAOF,EAAgBP,EAAca,EAAWJ,CAAS,EAAID,CAAS,CAC7E,EAEA,sBAAuBG,CAAQ,GAKxB,OAAA,SAAU,EAAGL,CAAS,CAEjC,EACA,sBAAuBK,CAAQ,CACjC,EAGE,OAAAG,EAAA,cAAC,IAAA,CACC,UAAAtC,EACA,KAAM,OAAQ2B,CAAO,EAAE,QAAS,GAAI,IAAM,EAAIA,EAAS,GACvD,QAASlB,EACR,GAAGoB,CAAA,EAEHH,CACH,CAEJ"}