{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/helpers/grid.ts","webpack:///./src/stories/Components/Misc/Carousel/CarouselProvider/CarouselProvider.tsx","webpack:///./src/img/icons/blockquote-icon.svg","webpack:///./src/helpers/brand.ts","webpack:///./src/helpers/fluid.ts","webpack:///./src/helpers/typography.ts","webpack:///./src/helpers/fonts.ts","webpack:///./src/helpers/animate.ts","webpack:///./src/hooks/useCarousel.ts","webpack:///./src/hooks/useResize.ts"],"names":["Device","from","size","until","between","start","end","SitePadding","SiteWidth","siteWide","css","TabletLarge","baseGrid","fluid","CarouselContext","React","activeIndex","alignment","CarouselAlignment","Left","direction","CarouselDirection","Horizontal","goToIndex","noop","goToNext","goToPrev","maxIndex","offset","offsets","recalculate","refContainer","refTrack","useCarouselContext","CarouselProvider","children","resetParam","otherProps","carousel","useCarousel","Provider","value","_path","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgBlockquoteIcon","props","viewBox","xmlns","d","fill","fillRule","brand","beige","beigeDark","black","green","greenBright","greyLight","greyMid","greyDark","pink","white","validation","invalid","valid","textShadow","rgba","DEFAULT_MIN_VALUE","TabletSmall","DEFAULT_MAX_VALUE","ActualDesktop","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","headingStyles","fonts","zahrah","medium","h1","h2","h3","h4","h5","h6","paragraphStyles","brandonGrotesque","regular","paragraphLarge","paragraphMedium","paragraphSmall","paragraphMicro","tagLarge","bold","tag","tagSmall","link","transition","table","blockquote","svgBlockQuoteIcon","contentStyles","thin","thinItalic","light","lightItalic","regularItalic","mediumItalic","boldItalic","blackItalic","semiBold","cubicEaseOut","shouldAnimate","innerCss","properties","duration","timing","scrollTo","y","disabled","document","querySelector","window","top","behavior","params","carouselState","dispatch","state","action","type","payload","clamp","wrap","refWindowHeight","refWindowWidth","onResize","debounce","prevHeight","current","prevWidth","newHeight","innerHeight","newWidth","innerWidth","on","callback","immediate","addEventListener","removeEventListener","useResize","initCarousel","index","getDimension","rect","width","Vertical","height","Array","count","forEach","_","push","items","containerSize","getBoundingClientRect","itemSize","itemSizeTotal","slice","map","el","reduce","p","c","Center","calculateOffset","trackSize"],"mappings":"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","file":"2-de043ba3d8d746b33368.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletMedium\"] = 896] = \"TabletMedium\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","import { Device, from } from '@helpers/media';\r\nimport { css } from 'styled-components';\r\nimport { fluid } from './fluid';\r\nexport const SitePadding = 18;\r\nexport const SiteWidth = 1240;\r\nexport const SiteWidthBreakpoint = SiteWidth + SitePadding * 2;\r\nexport const siteWide = css `\r\n --sitePadding: ${SitePadding}px;\r\n --siteWidth: ${SiteWidth}px;\r\n --maxWidth: calc(var(--siteWidth) + (var(--sitePadding) * 2));\r\n\r\n margin: 0 auto;\r\n padding: 0 var(--sitePadding);\r\n width: 100%;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: min(calc(75% + (var(--sitePadding) * 2)), var(--maxWidth));\r\n }\r\n`;\r\nexport const baseGrid = css `\r\n --gutterWidth: ${fluid(10, 40)};\r\n\r\n display: grid;\r\n column-gap: var(--gutterWidth);\r\n grid-template-columns: repeat(12, 1fr);\r\n`;\r\n","import { CarouselAlignment, CarouselDirection, useCarousel, } from '@hooks/useCarousel';\r\nimport noop from 'lodash/noop';\r\nimport * as React from 'react';\r\nconst CarouselContext = React.createContext({\r\n activeIndex: 0,\r\n alignment: CarouselAlignment.Left,\r\n direction: CarouselDirection.Horizontal,\r\n goToIndex: noop,\r\n goToNext: noop,\r\n goToPrev: noop,\r\n maxIndex: 0,\r\n offset: 0,\r\n offsets: [],\r\n recalculate: noop,\r\n refContainer: null,\r\n refTrack: null,\r\n});\r\nexport const useCarouselContext = () => React.useContext(CarouselContext);\r\nconst CarouselProvider = ({ children, resetParam, ...otherProps }) => {\r\n const carousel = useCarousel(otherProps);\r\n React.useEffect(() => {\r\n carousel.goToIndex(0);\r\n carousel.recalculate();\r\n }, [resetParam]);\r\n return React.createElement(CarouselContext.Provider, { value: carousel }, children);\r\n};\r\nexport default CarouselProvider;\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgBlockquoteIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1200 1200\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54 728.45c0 138.57 112.33 250.91 250.91 250.91s250.91-112.33 250.91-250.91c0-136.87-109.64-248.07-245.87-250.78 63.348-62.125 150.11-100.5 245.87-100.5l.004-150.54c-277.14 0-501.82 224.68-501.82 501.82zm1104-501.82c-277.14 0-501.82 224.68-501.82 501.82 0 138.57 112.34 250.91 250.91 250.91S1158 867.03 1158 728.45c0-136.87-109.64-248.07-245.87-250.78 63.348-62.125 150.12-100.5 245.87-100.5z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n })));\n}\n\nexport default __webpack_public_path__ + \"f328a34411117476e91b24f457d832a0.svg\";\nexport { SvgBlockquoteIcon as ReactComponent };","import { rgba } from 'polished';\r\nconst brand = {\r\n beige: '#F4F3EE',\r\n beigeDark: '#E9E7DD',\r\n black: '#000000',\r\n green: '#9DAD98',\r\n greenBright: '#889E83',\r\n greyLight: '#F4F3EE',\r\n greyMid: '#BEBEBE',\r\n greyDark: '#2B2E34',\r\n pink: '#FF8C93',\r\n white: '#ffffff',\r\n validation: {\r\n invalid: '#DA291C',\r\n valid: '#008C15',\r\n },\r\n};\r\nexport default brand;\r\nexport const textShadow = `drop-shadow(0px 0px 6px ${rgba(brand.greyDark, 0.5)})`;\r\n","import { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.TabletSmall;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.ActualDesktop;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import svgBlockQuoteIcon from '@img/icons/blockquote-icon.svg';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport { Device, from } from './media';\r\nexport const headingStyles = css `\r\n color: currentColor;\r\n ${fonts.zahrah.medium};\r\n margin: 0 0 ${fluid(16, 18)};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n letter-spacing: -0.035em;\r\n }\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(36, 52)};\r\n line-height: ${fluid(42, 58)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(32, 46)};\r\n line-height: ${fluid(38, 52)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(28, 36)};\r\n line-height: ${fluid(34, 42)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(24, 32)};\r\n line-height: ${fluid(30, 38)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(20, 26)};\r\n line-height: ${fluid(26, 32)};\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n`;\r\nconst paragraphStyles = css `\r\n color: currentColor;\r\n ${fonts.brandonGrotesque.regular};\r\n margin: 0 0 ${fluid(14, 16)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n`;\r\nexport const paragraphMedium = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(22, 24)};\r\n`;\r\nexport const paragraphMicro = css `\r\n ${paragraphStyles};\r\n font-size: 16px;\r\n line-height: 22px;\r\n`;\r\nexport const tagLarge = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(20, 22)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const tag = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(18, 20)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const tagSmall = css `\r\n ${paragraphStyles};\r\n ${fonts.brandonGrotesque.bold};\r\n font-size: ${fluid(12, 14)};\r\n line-height: ${fluid(14, 16)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n`;\r\nexport const link = css `\r\n display: inline-block;\r\n color: currentColor;\r\n background: linear-gradient(\r\n to right,\r\n var(--accentColor, ${brand.green}),\r\n var(--accentColor, ${brand.green})\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n margin: 0 -4px 0;\r\n padding: 0 4px 0;\r\n text-decoration: underline;\r\n text-underline-offset: 3px;\r\n\r\n ${transition('background-size, color')};\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &.focus-ring,\r\n &:focus,\r\n &:hover {\r\n background-size: 100% 100%;\r\n color: ${brand.white};\r\n text-decoration: none;\r\n }\r\n`;\r\nexport const table = css `\r\n background: ${brand.white};\r\n border-collapse: collapse;\r\n color: ${brand.black};\r\n margin-bottom: 1em;\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n background: ${brand.green};\r\n\r\n td,\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.zahrah.medium};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(odd) {\r\n background: ${brand.white};\r\n }\r\n\r\n &:nth-child(even) {\r\n background: ${brand.beige};\r\n }\r\n\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.zahrah.medium};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n\r\n td {\r\n border: 2px solid ${brand.white};\r\n ${fonts.brandonGrotesque.regular};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 20px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n`;\r\nexport const blockquote = css `\r\n position: relative;\r\n ${paragraphLarge}\r\n ${fonts.brandonGrotesque.bold}\r\n padding-top: 66px;\r\n text-align: left;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n background-image: url(${svgBlockQuoteIcon});\r\n height: 50px;\r\n width: 50px;\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h1}\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h2}\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h3}\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h4}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h5}\r\n }\r\n\r\n p {\r\n ${paragraphMedium}\r\n }\r\n\r\n p.large {\r\n ${paragraphLarge}\r\n }\r\n\r\n p.small {\r\n ${paragraphSmall}\r\n }\r\n\r\n p.tag-large,\r\n .tag-large {\r\n ${tagLarge};\r\n }\r\n\r\n p.tag,\r\n .tag {\r\n ${tag};\r\n }\r\n\r\n p.tag-small,\r\n .tag-small {\r\n ${tagSmall};\r\n }\r\n\r\n p.tag,\r\n .tag,\r\n p.tag-large,\r\n .tag-large,\r\n p.tag-small,\r\n .tag-small {\r\n margin: 0 0 ${fluid(12, 14)};\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphMedium};\r\n margin: 0 0 0.5em;\r\n\r\n li {\r\n margin: 0 0 0.33em;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n padding-left: 1.2em;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n padding-left: 1.2em;\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n height: 4px;\r\n margin: ${fluid(40, 80)} 0;\r\n padding: 0;\r\n width: 100%;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n .responsive-table {\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { css } from 'styled-components';\r\nexport default {\r\n brandonGrotesque: {\r\n thin: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 100;\r\n `,\r\n thinItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 100;\r\n `,\r\n light: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n mediumItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 500;\r\n `,\r\n bold: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n black: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: normal;\r\n font-weight: 900;\r\n `,\r\n blackItalic: css `\r\n font-family: 'Brandon Grotesque', sans-serif;\r\n font-style: italic;\r\n font-weight: 900;\r\n `,\r\n },\r\n zahrah: {\r\n regular: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n semiBold: css `\r\n font-family: 'Zahrah', sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n },\r\n};\r\n","import { css } from 'styled-components';\r\nexport const inViewMargin = '0px 0px -35% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport const disableAnimationClass = '.equally-ai___toolbox-disable-buttons-animations';\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss}\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition: ${properties};\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\nexport function scrollTo(y) {\r\n const disabled = document.querySelector(disableAnimationClass);\r\n window.scrollTo({\r\n top: y,\r\n behavior: !disabled ? 'smooth' : 'auto',\r\n });\r\n}\r\n","import * as React from 'react';\r\nimport { useResize } from './useResize';\r\nexport var CarouselAlignment;\r\n(function (CarouselAlignment) {\r\n CarouselAlignment[\"Left\"] = \"left\";\r\n CarouselAlignment[\"Center\"] = \"center\";\r\n})(CarouselAlignment || (CarouselAlignment = {}));\r\nexport var CarouselDirection;\r\n(function (CarouselDirection) {\r\n CarouselDirection[\"Horizontal\"] = \"horizontal\";\r\n CarouselDirection[\"Vertical\"] = \"vertical\";\r\n})(CarouselDirection || (CarouselDirection = {}));\r\nexport function useCarousel(params) {\r\n const refContainer = React.useRef(null);\r\n const refTrack = React.useRef(null);\r\n const [carouselState, dispatch] = React.useReducer(carouselReducer, {\r\n activeIndex: 0,\r\n alignment: params.alignment ?? CarouselAlignment.Left,\r\n direction: params.direction ?? CarouselDirection.Horizontal,\r\n maxIndex: 0,\r\n offsets: [],\r\n });\r\n useResize({\r\n callback: initCarousel,\r\n debounce: 100,\r\n immediate: true,\r\n on: 'x',\r\n });\r\n return {\r\n ...carouselState,\r\n goToIndex,\r\n goToNext,\r\n goToPrev,\r\n recalculate: initCarousel,\r\n offset: carouselState.offsets[carouselState.activeIndex],\r\n refContainer,\r\n refTrack,\r\n };\r\n /**\r\n * Calculate the px offset for the track for the target item index.\r\n * @param index\r\n * @returns\r\n */\r\n function calculateOffset(index, alignment, direction) {\r\n if (!refContainer.current) {\r\n return 0;\r\n }\r\n if (!refTrack.current) {\r\n return 0;\r\n }\r\n // Collect array of carousel item elements.\r\n const items = Array.from(refTrack.current.children);\r\n // Calculate width of container.\r\n const containerSize = getDimension(refContainer.current.getBoundingClientRect(), direction);\r\n // Calculate width of item.\r\n const itemSize = getDimension(items[index].getBoundingClientRect(), direction);\r\n // Get all items before the current item.\r\n const itemsUntilIndex = items.slice(0, index);\r\n // Calculate size of all items up to current.\r\n const itemSizes = itemsUntilIndex\r\n .map((el) => el.getBoundingClientRect())\r\n .map((rect) => getDimension(rect, direction));\r\n const itemSizeTotal = itemSizes.reduce((p, c) => p + c, 0);\r\n if (alignment === CarouselAlignment.Center) {\r\n return itemSizeTotal + itemSize / 2 - containerSize / 2;\r\n }\r\n else {\r\n return itemSizeTotal;\r\n }\r\n }\r\n function getDimension(rect, direction) {\r\n switch (direction) {\r\n case CarouselDirection.Horizontal:\r\n return rect.width;\r\n case CarouselDirection.Vertical:\r\n return rect.height;\r\n default:\r\n return 0;\r\n }\r\n }\r\n /**\r\n * Initialise the reducer state.\r\n */\r\n function initCarousel() {\r\n const offsets = [];\r\n const alignment = params.alignment ?? CarouselAlignment.Left;\r\n const direction = params.direction ?? CarouselDirection.Horizontal;\r\n // Pre-calculate the px offset for each item in the carousel.\r\n Array.from(Array(params.count)).forEach((_, index) => {\r\n offsets.push(calculateOffset(index, alignment, direction));\r\n });\r\n // Determine what the max index value needs to be in order for the last item to be within view.\r\n const containerSize = direction === CarouselDirection.Horizontal\r\n ? refContainer.current?.getBoundingClientRect().width\r\n : refContainer.current?.getBoundingClientRect().height;\r\n const trackSize = offsets[offsets.length - 1] + 1;\r\n let maxIndex = 0;\r\n if (alignment === CarouselAlignment.Center) {\r\n maxIndex = offsets.length - 1;\r\n }\r\n else {\r\n for (let index = 0; index < offsets.length; index++) {\r\n const offset = offsets[index];\r\n const remainder = trackSize - offset;\r\n if (remainder <= (containerSize ?? 0)) {\r\n maxIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n // Initialise the carousel state.\r\n dispatch({ type: 'init', payload: { alignment, direction, maxIndex, offsets } });\r\n }\r\n /**\r\n * Go to the next item.\r\n */\r\n function goToNext(wrap) {\r\n dispatch({ type: 'next', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the previous item.\r\n */\r\n function goToPrev(wrap) {\r\n dispatch({ type: 'prev', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the target index.\r\n */\r\n function goToIndex(index) {\r\n dispatch({ type: 'goto', payload: index });\r\n }\r\n function carouselReducer(state, action) {\r\n switch (action.type) {\r\n case 'init':\r\n return {\r\n activeIndex: 0,\r\n alignment: action.payload.alignment,\r\n direction: action.payload.direction,\r\n offsets: action.payload.offsets,\r\n maxIndex: action.payload.maxIndex,\r\n };\r\n case 'goto':\r\n return { ...state, activeIndex: clamp(action.payload) };\r\n case 'next':\r\n if (action.payload.wrap && state.activeIndex === state.maxIndex) {\r\n return { ...state, activeIndex: 0 };\r\n }\r\n return { ...state, activeIndex: clamp(state.activeIndex + 1) };\r\n case 'prev':\r\n if (action.payload.wrap && state.activeIndex === 0) {\r\n return { ...state, activeIndex: state.maxIndex };\r\n }\r\n return { ...state, activeIndex: clamp(state.activeIndex - 1) };\r\n }\r\n /** Clamp index to be within the min/max index range. */\r\n function clamp(value) {\r\n return Math.max(Math.min(value, state.maxIndex), 0);\r\n }\r\n }\r\n}\r\n","import debounce from 'lodash/debounce';\r\nimport * as React from 'react';\r\nexport function useResize(params) {\r\n const refWindowHeight = React.useRef();\r\n const refWindowWidth = React.useRef();\r\n const onResize = React.useCallback(debounce(() => {\r\n const prevHeight = refWindowHeight.current;\r\n const prevWidth = refWindowWidth.current;\r\n const newHeight = window.innerHeight;\r\n const newWidth = window.innerWidth;\r\n const shouldTrigger = params.on === 'both' ||\r\n (params.on === 'y' && prevHeight !== newHeight) ||\r\n (params.on === 'x' && prevWidth !== newWidth);\r\n if (shouldTrigger) {\r\n params.callback();\r\n }\r\n refWindowHeight.current = newHeight;\r\n refWindowWidth.current = newWidth;\r\n }, params.debounce), [params.debounce, params.on]);\r\n React.useEffect(() => {\r\n if (!params.callback) {\r\n return;\r\n }\r\n if (params.immediate) {\r\n onResize();\r\n }\r\n window.addEventListener('resize', onResize);\r\n return () => {\r\n window.removeEventListener('resize', onResize);\r\n };\r\n }, [params.on]);\r\n}\r\n"],"sourceRoot":""}