{"version":3,"file":"static/js/6844.3b0a655f.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/LinearProgress/LinearProgress.js","../node_modules/@mui/material/LinearProgress/linearProgressClasses.js","../node_modules/@mui/material/Skeleton/skeletonClasses.js","../node_modules/@mui/material/Skeleton/Skeleton.js","../node_modules/@mui/material/styles/cssUtils.js","../node_modules/classnames/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/exenv/index.js","../node_modules/json2mq/index.js","../node_modules/react-image-lightbox/dist/index.es.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-map-gl/src/components/use-map.tsx","../node_modules/react-map-gl/src/utils/deep-equal.ts","../node_modules/react-map-gl/src/utils/transform.ts","../node_modules/react-map-gl/src/utils/style-utils.ts","../node_modules/react-map-gl/src/mapbox/mapbox.ts","../node_modules/react-map-gl/src/mapbox/create-ref.ts","../node_modules/react-map-gl/src/utils/use-isomorphic-layout-effect.ts","../node_modules/react-map-gl/src/utils/set-globals.ts","../node_modules/react-map-gl/src/components/map.tsx","../node_modules/react-map-gl/src/utils/apply-react-style.ts","../node_modules/react-map-gl/src/components/marker.ts","../node_modules/react-map-gl/src/components/popup.ts","../node_modules/react-map-gl/src/components/use-control.ts","../node_modules/react-map-gl/src/components/attribution-control.ts","../node_modules/react-map-gl/src/components/fullscreen-control.tsx","../node_modules/react-map-gl/src/components/geolocate-control.ts","../node_modules/react-map-gl/src/components/navigation-control.ts","../node_modules/react-map-gl/src/components/scale-control.ts","../node_modules/react-map-gl/src/utils/assert.ts","../node_modules/react-map-gl/src/components/layer.ts","../node_modules/react-map-gl/src/components/source.ts","../node_modules/react-map-gl/src/exports-mapbox.ts","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/warning/warning.js","../node_modules/@turf/meta/index.js","../node_modules/@turf/bbox/index.ts","../node_modules/@motionone/dom/node_modules/tslib/tslib.es6.js","../node_modules/@motionone/dom/dist/gestures/resize/handle-element.es.js","../node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","../node_modules/@motionone/dom/dist/gestures/resize/handle-window.es.js","../node_modules/@motionone/utils/dist/is-function.es.js","../node_modules/@motionone/dom/dist/gestures/resize/index.es.js","../node_modules/@motionone/utils/dist/progress.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/info.es.js","../node_modules/@motionone/utils/dist/velocity.es.js","../node_modules/@motionone/utils/dist/noop.es.js","../node_modules/@motionone/utils/dist/mix.es.js","../node_modules/@motionone/utils/dist/offset.es.js","../node_modules/@motionone/utils/dist/is-number.es.js","../node_modules/@motionone/utils/dist/easing.es.js","../node_modules/@motionone/utils/dist/is-easing-list.es.js","../node_modules/@motionone/utils/dist/wrap.es.js","../node_modules/@motionone/utils/dist/clamp.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/offsets/presets.es.js","../node_modules/@motionone/utils/dist/is-string.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/offsets/edge.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/offsets/offset.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/offsets/index.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/offsets/inset.es.js","../node_modules/@motionone/utils/dist/interpolate.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/on-scroll-handler.es.js","../node_modules/@motionone/dom/dist/gestures/scroll/index.es.js","../node_modules/framer-motion/dist/es/value/use-scroll.mjs","../node_modules/framer-motion/dist/es/value/use-motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-on-change.mjs","../node_modules/framer-motion/dist/es/value/use-spring.mjs"],"sourcesContent":["import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"raised\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Paper from '../Paper';\nimport { getCardUtilityClass } from './cardClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\n\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n raised\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n\n return null;\n }),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"value\", \"valueBuffer\", \"variant\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4,\n _t5,\n _t6;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { keyframes, css, darken, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useTheme from '../styles/useTheme';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getLinearProgressUtilityClass } from './linearProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TRANSITION_DURATION = 4; // seconds\n\nconst indeterminate1Keyframe = keyframes(_t || (_t = _`\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n`));\nconst indeterminate2Keyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n left: -200%;\n right: 100%;\n }\n\n 60% {\n left: 107%;\n right: -8%;\n }\n\n 100% {\n left: 107%;\n right: -8%;\n }\n`));\nconst bufferKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n opacity: 1;\n background-position: 0 -23px;\n }\n\n 60% {\n opacity: 0;\n background-position: 0 -23px;\n }\n\n 100% {\n opacity: 1;\n background-position: -200px -23px;\n }\n`));\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, variant],\n dashed: ['dashed', `dashedColor${capitalize(color)}`],\n bar1: ['bar', `barColor${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],\n bar2: ['bar', variant !== 'buffer' && `barColor${capitalize(color)}`, variant === 'buffer' && `color${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']\n };\n return composeClasses(slots, getLinearProgressUtilityClass, classes);\n};\n\nconst getColorShade = (theme, color) => {\n if (color === 'inherit') {\n return 'currentColor';\n }\n\n return theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.5);\n};\n\nconst LinearProgressRoot = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], styles[ownerState.variant]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'relative',\n overflow: 'hidden',\n display: 'block',\n height: 4,\n zIndex: 0,\n // Fix Safari's bug during composition of different paint.\n '@media print': {\n colorAdjust: 'exact'\n },\n backgroundColor: getColorShade(theme, ownerState.color)\n}, ownerState.color === 'inherit' && ownerState.variant !== 'buffer' && {\n backgroundColor: 'none',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'currentColor',\n opacity: 0.3\n }\n}, ownerState.variant === 'buffer' && {\n backgroundColor: 'transparent'\n}, ownerState.variant === 'query' && {\n transform: 'rotate(180deg)'\n}));\nconst LinearProgressDashed = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Dashed',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.dashed, styles[`dashedColor${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => {\n const backgroundColor = getColorShade(theme, ownerState.color);\n return _extends({\n position: 'absolute',\n marginTop: 0,\n height: '100%',\n width: '100%'\n }, ownerState.color === 'inherit' && {\n opacity: 0.3\n }, {\n backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`,\n backgroundSize: '10px 10px',\n backgroundPosition: '0 -23px'\n });\n}, css(_t4 || (_t4 = _`\n animation: ${0} 3s infinite linear;\n `), bufferKeyframe));\nconst LinearProgressBar1 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar1',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left',\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main\n}, ownerState.variant === 'determinate' && {\n transition: `transform .${TRANSITION_DURATION}s linear`\n}, ownerState.variant === 'buffer' && {\n zIndex: 1,\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t5 || (_t5 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n `), indeterminate1Keyframe));\nconst LinearProgressBar2 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar2',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left'\n}, ownerState.variant !== 'buffer' && {\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main\n}, ownerState.color === 'inherit' && {\n opacity: 0.3\n}, ownerState.variant === 'buffer' && {\n backgroundColor: getColorShade(theme, ownerState.color),\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t6 || (_t6 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n `), indeterminate2Keyframe));\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nconst LinearProgress = /*#__PURE__*/React.forwardRef(function LinearProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLinearProgress'\n });\n\n const {\n className,\n color = 'primary',\n value,\n valueBuffer,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const rootProps = {};\n const inlineStyles = {\n bar1: {},\n bar2: {}\n };\n\n if (variant === 'determinate' || variant === 'buffer') {\n if (value !== undefined) {\n rootProps['aria-valuenow'] = Math.round(value);\n rootProps['aria-valuemin'] = 0;\n rootProps['aria-valuemax'] = 100;\n let transform = value - 100;\n\n if (theme.direction === 'rtl') {\n transform = -transform;\n }\n\n inlineStyles.bar1.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a value prop ' + 'when using the determinate or buffer variant of LinearProgress .');\n }\n }\n\n if (variant === 'buffer') {\n if (valueBuffer !== undefined) {\n let transform = (valueBuffer || 0) - 100;\n\n if (theme.direction === 'rtl') {\n transform = -transform;\n }\n\n inlineStyles.bar2.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a valueBuffer prop ' + 'when using the buffer variant of LinearProgress.');\n }\n }\n\n return /*#__PURE__*/_jsxs(LinearProgressRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"progressbar\"\n }, rootProps, {\n ref: ref\n }, other, {\n children: [variant === 'buffer' ? /*#__PURE__*/_jsx(LinearProgressDashed, {\n className: classes.dashed,\n ownerState: ownerState\n }) : null, /*#__PURE__*/_jsx(LinearProgressBar1, {\n className: classes.bar1,\n ownerState: ownerState,\n style: inlineStyles.bar1\n }), variant === 'determinate' ? null : /*#__PURE__*/_jsx(LinearProgressBar2, {\n className: classes.bar2,\n ownerState: ownerState,\n style: inlineStyles.bar2\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? LinearProgress.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the progress indicator for the determinate and buffer variants.\n * Value between 0 and 100.\n */\n value: PropTypes.number,\n\n /**\n * The value for the buffer variant.\n * Value between 0 and 100.\n */\n valueBuffer: PropTypes.number,\n\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['buffer', 'determinate', 'indeterminate', 'query'])\n} : void 0;\nexport default LinearProgress;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinearProgressUtilityClass(slot) {\n return generateUtilityClass('MuiLinearProgress', slot);\n}\nconst linearProgressClasses = generateUtilityClasses('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);\nexport default linearProgressClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSkeletonUtilityClass(slot) {\n return generateUtilityClass('MuiSkeleton', slot);\n}\nconst skeletonClasses = generateUtilityClasses('MuiSkeleton', ['root', 'text', 'rectangular', 'circular', 'pulse', 'wave', 'withChildren', 'fitContent', 'heightAuto']);\nexport default skeletonClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"animation\", \"className\", \"component\", \"height\", \"style\", \"variant\", \"width\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { keyframes, css } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, unstable_getUnit as getUnit, unstable_toUnitless as toUnitless } from '../styles';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getSkeletonUtilityClass } from './skeletonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n animation,\n hasChildren,\n width,\n height\n } = ownerState;\n const slots = {\n root: ['root', variant, animation, hasChildren && 'withChildren', hasChildren && !width && 'fitContent', hasChildren && !height && 'heightAuto']\n };\n return composeClasses(slots, getSkeletonUtilityClass, classes);\n};\n\nconst pulseKeyframe = keyframes(_t || (_t = _`\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.4;\n }\n\n 100% {\n opacity: 1;\n }\n`));\nconst waveKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n /* +0.5s of delay between each loop */\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n`));\nconst SkeletonRoot = styled('span', {\n name: 'MuiSkeleton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.animation !== false && styles[ownerState.animation], ownerState.hasChildren && styles.withChildren, ownerState.hasChildren && !ownerState.width && styles.fitContent, ownerState.hasChildren && !ownerState.height && styles.heightAuto];\n }\n})(({\n theme,\n ownerState\n}) => {\n const radiusUnit = getUnit(theme.shape.borderRadius) || 'px';\n const radiusValue = toUnitless(theme.shape.borderRadius);\n return _extends({\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n }, ownerState.variant === 'text' && {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 55%',\n transform: 'scale(1, 0.60)',\n borderRadius: `${radiusValue}${radiusUnit}/${Math.round(radiusValue / 0.6 * 10) / 10}${radiusUnit}`,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n }, ownerState.variant === 'circular' && {\n borderRadius: '50%'\n }, ownerState.hasChildren && {\n '& > *': {\n visibility: 'hidden'\n }\n }, ownerState.hasChildren && !ownerState.width && {\n maxWidth: 'fit-content'\n }, ownerState.hasChildren && !ownerState.height && {\n height: 'auto'\n });\n}, ({\n ownerState\n}) => ownerState.animation === 'pulse' && css(_t3 || (_t3 = _`\n animation: ${0} 1.5s ease-in-out 0.5s infinite;\n `), pulseKeyframe), ({\n ownerState,\n theme\n}) => ownerState.animation === 'wave' && css(_t4 || (_t4 = _`\n position: relative;\n overflow: hidden;\n\n /* Fix bug in Safari https://bugs.webkit.org/show_bug.cgi?id=68196 */\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n animation: ${0} 1.6s linear 0.5s infinite;\n background: linear-gradient(90deg, transparent, ${0}, transparent);\n content: '';\n position: absolute;\n transform: translateX(-100%); /* Avoid flash during server-side hydration */\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n `), waveKeyframe, theme.palette.action.hover));\nconst Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSkeleton'\n });\n\n const {\n animation = 'pulse',\n className,\n component = 'span',\n height,\n style,\n variant = 'text',\n width\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n animation,\n component,\n variant,\n hasChildren: Boolean(other.children)\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(SkeletonRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n style: _extends({\n width,\n height\n }, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n * @default 'pulse'\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The type of content that will be rendered.\n * @default 'text'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['circular', 'rectangular', 'text']), PropTypes.string]),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default Skeleton;","export function isUnitless(value) {\n return String(parseFloat(value)).length === String(value).length;\n} // Ported from Compass\n// https://github.com/Compass/compass/blob/master/core/stylesheets/compass/typography/_units.scss\n// Emulate the sass function \"unit\"\n\nexport function getUnit(input) {\n return String(input).match(/[\\d.\\-+]*\\s*(.*)/)[1] || '';\n} // Emulate the sass function \"unitless\"\n\nexport function toUnitless(length) {\n return parseFloat(length);\n} // Convert any CSS or value to any another.\n// From https://github.com/KyleAMathews/convert-css-length\n\nexport function convertLength(baseFontSize) {\n return (length, toUnit) => {\n const fromUnit = getUnit(length); // Optimize for cases where `from` and `to` units are accidentally the same.\n\n if (fromUnit === toUnit) {\n return length;\n } // Convert input length to pixels.\n\n\n let pxLength = toUnitless(length);\n\n if (fromUnit !== 'px') {\n if (fromUnit === 'em') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n } else if (fromUnit === 'rem') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n }\n } // Convert length in pixels to the output unit\n\n\n let outputLength = pxLength;\n\n if (toUnit !== 'px') {\n if (toUnit === 'em') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else if (toUnit === 'rem') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else {\n return length;\n }\n }\n\n return parseFloat(outputLength.toFixed(5)) + toUnit;\n };\n}\nexport function alignProperty({\n size,\n grid\n}) {\n const sizeBelow = size - size % grid;\n const sizeAbove = sizeBelow + grid;\n return size - sizeBelow < sizeAbove - size ? sizeBelow : sizeAbove;\n} // fontGrid finds a minimal grid (in rem) for the fontSize values so that the\n// lineHeight falls under a x pixels grid, 4px in the case of Material Design,\n// without changing the relative line height\n\nexport function fontGrid({\n lineHeight,\n pixels,\n htmlFontSize\n}) {\n return pixels / (lineHeight * htmlFontSize);\n}\n/**\n * generate a responsive version of a given CSS property\n * @example\n * responsiveProperty({\n * cssProperty: 'fontSize',\n * min: 15,\n * max: 20,\n * unit: 'px',\n * breakpoints: [300, 600],\n * })\n *\n * // this returns\n *\n * {\n * fontSize: '15px',\n * '@media (min-width:300px)': {\n * fontSize: '17.5px',\n * },\n * '@media (min-width:600px)': {\n * fontSize: '20px',\n * },\n * }\n * @param {Object} params\n * @param {string} params.cssProperty - The CSS property to be made responsive\n * @param {number} params.min - The smallest value of the CSS property\n * @param {number} params.max - The largest value of the CSS property\n * @param {string} [params.unit] - The unit to be used for the CSS property\n * @param {Array.number} [params.breakpoints] - An array of breakpoints\n * @param {number} [params.alignStep] - Round scaled value to fall under this grid\n * @returns {Object} responsive styles for {params.cssProperty}\n */\n\nexport function responsiveProperty({\n cssProperty,\n min,\n max,\n unit = 'rem',\n breakpoints = [600, 900, 1200],\n transform = null\n}) {\n const output = {\n [cssProperty]: `${min}${unit}`\n };\n const factor = (max - min) / breakpoints[breakpoints.length - 1];\n breakpoints.forEach(breakpoint => {\n let value = min + factor * breakpoint;\n\n if (transform !== null) {\n value = transform(value);\n }\n\n output[`@media (min-width:${breakpoint}px)`] = {\n [cssProperty]: `${Math.round(value * 10000) / 10000}${unit}`\n };\n });\n return output;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/**\n * Placeholder for future translate functionality\n */\nfunction translate(str) {\n var replaceStrings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!str) {\n return '';\n }\n\n var translated = str;\n\n if (replaceStrings) {\n Object.keys(replaceStrings).forEach(function (placeholder) {\n translated = translated.replace(placeholder, replaceStrings[placeholder]);\n });\n }\n\n return translated;\n}\nfunction getWindowWidth() {\n return typeof global.window !== 'undefined' ? global.window.innerWidth : 0;\n}\nfunction getWindowHeight() {\n return typeof global.window !== 'undefined' ? global.window.innerHeight : 0;\n}\n\nvar isCrossOriginFrame = function isCrossOriginFrame() {\n try {\n return global.window.location.hostname !== global.window.parent.location.hostname;\n } catch (e) {\n return true;\n }\n}; // Get the highest window context that isn't cross-origin\n// (When in an iframe)\n\n\nfunction getHighestSafeWindowContext() {\n var self = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : global.window.self;\n\n // If we reached the top level, return self\n if (self === global.window.top) {\n return self;\n } // If parent is the same origin, we can move up one context\n // Reference: https://stackoverflow.com/a/21965342/1601953\n\n\n if (!isCrossOriginFrame()) {\n return getHighestSafeWindowContext(self.parent);\n } // If a different origin, we consider the current level\n // as the top reachable one\n\n\n return self;\n}\n\n// Min image zoom level\nvar MIN_ZOOM_LEVEL = 0; // Max image zoom level\n\nvar MAX_ZOOM_LEVEL = 300; // Size ratio between previous and next zoom levels\n\nvar ZOOM_RATIO = 1.007; // How much to increase/decrease the zoom level when the zoom buttons are clicked\n\nvar ZOOM_BUTTON_INCREMENT_SIZE = 100; // Used to judge the amount of horizontal scroll needed to initiate a image move\n\nvar WHEEL_MOVE_X_THRESHOLD = 200; // Used to judge the amount of vertical scroll needed to initiate a zoom action\n\nvar WHEEL_MOVE_Y_THRESHOLD = 1;\nvar KEYS = {\n ESC: 27,\n LEFT_ARROW: 37,\n RIGHT_ARROW: 39\n}; // Actions\n\nvar ACTION_NONE = 0;\nvar ACTION_MOVE = 1;\nvar ACTION_SWIPE = 2;\nvar ACTION_PINCH = 3;\n\nvar SOURCE_ANY = 0;\nvar SOURCE_MOUSE = 1;\nvar SOURCE_TOUCH = 2;\nvar SOURCE_POINTER = 3; // Minimal swipe distance\n\nvar MIN_SWIPE_DISTANCE = 200;\n\nvar ReactImageLightbox = /*#__PURE__*/function (_Component) {\n _inherits(ReactImageLightbox, _Component);\n\n var _super = _createSuper(ReactImageLightbox);\n\n function ReactImageLightbox(props) {\n var _this;\n\n _classCallCheck(this, ReactImageLightbox);\n\n _this = _super.call(this, props);\n _this.state = {\n //-----------------------------\n // Animation\n //-----------------------------\n // Lightbox is closing\n // When Lightbox is mounted, if animation is enabled it will open with the reverse of the closing animation\n isClosing: !props.animationDisabled,\n // Component parts should animate (e.g., when images are moving, or image is being zoomed)\n shouldAnimate: false,\n //-----------------------------\n // Zoom settings\n //-----------------------------\n // Zoom level of image\n zoomLevel: MIN_ZOOM_LEVEL,\n //-----------------------------\n // Image position settings\n //-----------------------------\n // Horizontal offset from center\n offsetX: 0,\n // Vertical offset from center\n offsetY: 0,\n // image load error for srcType\n loadErrorStatus: {}\n }; // Refs\n\n _this.outerEl = /*#__PURE__*/React.createRef();\n _this.zoomInBtn = /*#__PURE__*/React.createRef();\n _this.zoomOutBtn = /*#__PURE__*/React.createRef();\n _this.caption = /*#__PURE__*/React.createRef();\n _this.closeIfClickInner = _this.closeIfClickInner.bind(_assertThisInitialized(_this));\n _this.handleImageDoubleClick = _this.handleImageDoubleClick.bind(_assertThisInitialized(_this));\n _this.handleImageMouseWheel = _this.handleImageMouseWheel.bind(_assertThisInitialized(_this));\n _this.handleKeyInput = _this.handleKeyInput.bind(_assertThisInitialized(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind(_assertThisInitialized(_this));\n _this.handleMouseDown = _this.handleMouseDown.bind(_assertThisInitialized(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind(_assertThisInitialized(_this));\n _this.handleOuterMousewheel = _this.handleOuterMousewheel.bind(_assertThisInitialized(_this));\n _this.handleTouchStart = _this.handleTouchStart.bind(_assertThisInitialized(_this));\n _this.handleTouchMove = _this.handleTouchMove.bind(_assertThisInitialized(_this));\n _this.handleTouchEnd = _this.handleTouchEnd.bind(_assertThisInitialized(_this));\n _this.handlePointerEvent = _this.handlePointerEvent.bind(_assertThisInitialized(_this));\n _this.handleCaptionMousewheel = _this.handleCaptionMousewheel.bind(_assertThisInitialized(_this));\n _this.handleWindowResize = _this.handleWindowResize.bind(_assertThisInitialized(_this));\n _this.handleZoomInButtonClick = _this.handleZoomInButtonClick.bind(_assertThisInitialized(_this));\n _this.handleZoomOutButtonClick = _this.handleZoomOutButtonClick.bind(_assertThisInitialized(_this));\n _this.requestClose = _this.requestClose.bind(_assertThisInitialized(_this));\n _this.requestMoveNext = _this.requestMoveNext.bind(_assertThisInitialized(_this));\n _this.requestMovePrev = _this.requestMovePrev.bind(_assertThisInitialized(_this)); // Timeouts - always clear it before umount\n\n _this.timeouts = []; // Current action\n\n _this.currentAction = ACTION_NONE; // Events source\n\n _this.eventsSource = SOURCE_ANY; // Empty pointers list\n\n _this.pointerList = []; // Prevent inner close\n\n _this.preventInnerClose = false;\n _this.preventInnerCloseTimeout = null; // Used to disable animation when changing props.mainSrc|nextSrc|prevSrc\n\n _this.keyPressed = false; // Used to store load state / dimensions of images\n\n _this.imageCache = {}; // Time the last keydown event was called (used in keyboard action rate limiting)\n\n _this.lastKeyDownTime = 0; // Used for debouncing window resize event\n\n _this.resizeTimeout = null; // Used to determine when actions are triggered by the scroll wheel\n\n _this.wheelActionTimeout = null;\n _this.resetScrollTimeout = null;\n _this.scrollX = 0;\n _this.scrollY = 0; // Used in panning zoomed images\n\n _this.moveStartX = 0;\n _this.moveStartY = 0;\n _this.moveStartOffsetX = 0;\n _this.moveStartOffsetY = 0; // Used to swipe\n\n _this.swipeStartX = 0;\n _this.swipeStartY = 0;\n _this.swipeEndX = 0;\n _this.swipeEndY = 0; // Used to pinch\n\n _this.pinchTouchList = null;\n _this.pinchDistance = 0; // Used to differentiate between images with identical src\n\n _this.keyCounter = 0; // Used to detect a move when all src's remain unchanged (four or more of the same image in a row)\n\n _this.moveRequested = false;\n return _this;\n }\n\n _createClass(ReactImageLightbox, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.props.animationDisabled) {\n // Make opening animation play\n this.setState({\n isClosing: false\n });\n } // Prevents cross-origin errors when using a cross-origin iframe\n\n\n this.windowContext = getHighestSafeWindowContext();\n this.listeners = {\n resize: this.handleWindowResize,\n mouseup: this.handleMouseUp,\n touchend: this.handleTouchEnd,\n touchcancel: this.handleTouchEnd,\n pointerdown: this.handlePointerEvent,\n pointermove: this.handlePointerEvent,\n pointerup: this.handlePointerEvent,\n pointercancel: this.handlePointerEvent\n };\n Object.keys(this.listeners).forEach(function (type) {\n _this2.windowContext.addEventListener(type, _this2.listeners[type]);\n });\n this.loadAllImages();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this3 = this;\n\n this.getSrcTypes().forEach(function (srcType) {\n if (_this3.props[srcType.name] !== nextProps[srcType.name]) {\n _this3.moveRequested = false;\n }\n }); // Wait for move...\n\n return !this.moveRequested;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this4 = this;\n\n var sourcesChanged = false;\n var prevSrcDict = {};\n var nextSrcDict = {};\n this.getSrcTypes().forEach(function (srcType) {\n if (prevProps[srcType.name] !== _this4.props[srcType.name]) {\n sourcesChanged = true;\n prevSrcDict[prevProps[srcType.name]] = true;\n nextSrcDict[_this4.props[srcType.name]] = true;\n }\n });\n\n if (sourcesChanged || this.moveRequested) {\n // Reset the loaded state for images not rendered next\n Object.keys(prevSrcDict).forEach(function (prevSrc) {\n if (!(prevSrc in nextSrcDict) && prevSrc in _this4.imageCache) {\n _this4.imageCache[prevSrc].loaded = false;\n }\n });\n this.moveRequested = false; // Load any new images\n\n this.loadAllImages(this.props);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this5 = this;\n\n this.didUnmount = true;\n Object.keys(this.listeners).forEach(function (type) {\n _this5.windowContext.removeEventListener(type, _this5.listeners[type]);\n });\n this.timeouts.forEach(function (tid) {\n return clearTimeout(tid);\n });\n }\n }, {\n key: \"setTimeout\",\n value: function (_setTimeout) {\n function setTimeout(_x, _x2) {\n return _setTimeout.apply(this, arguments);\n }\n\n setTimeout.toString = function () {\n return _setTimeout.toString();\n };\n\n return setTimeout;\n }(function (func, time) {\n var _this6 = this;\n\n var id = setTimeout(function () {\n _this6.timeouts = _this6.timeouts.filter(function (tid) {\n return tid !== id;\n });\n func();\n }, time);\n this.timeouts.push(id);\n return id;\n })\n }, {\n key: \"setPreventInnerClose\",\n value: function setPreventInnerClose() {\n var _this7 = this;\n\n if (this.preventInnerCloseTimeout) {\n this.clearTimeout(this.preventInnerCloseTimeout);\n }\n\n this.preventInnerClose = true;\n this.preventInnerCloseTimeout = this.setTimeout(function () {\n _this7.preventInnerClose = false;\n _this7.preventInnerCloseTimeout = null;\n }, 100);\n } // Get info for the best suited image to display with the given srcType\n\n }, {\n key: \"getBestImageForType\",\n value: function getBestImageForType(srcType) {\n var imageSrc = this.props[srcType];\n var fitSizes = {};\n\n if (this.isImageLoaded(imageSrc)) {\n // Use full-size image if available\n fitSizes = this.getFitSizes(this.imageCache[imageSrc].width, this.imageCache[imageSrc].height);\n } else if (this.isImageLoaded(this.props[\"\".concat(srcType, \"Thumbnail\")])) {\n // Fall back to using thumbnail if the image has not been loaded\n imageSrc = this.props[\"\".concat(srcType, \"Thumbnail\")];\n fitSizes = this.getFitSizes(this.imageCache[imageSrc].width, this.imageCache[imageSrc].height, true);\n } else {\n return null;\n }\n\n return {\n src: imageSrc,\n height: this.imageCache[imageSrc].height,\n width: this.imageCache[imageSrc].width,\n targetHeight: fitSizes.height,\n targetWidth: fitSizes.width\n };\n } // Get sizing for when an image is larger than the window\n\n }, {\n key: \"getFitSizes\",\n value: function getFitSizes(width, height, stretch) {\n var boxSize = this.getLightboxRect();\n var maxHeight = boxSize.height - this.props.imagePadding * 2;\n var maxWidth = boxSize.width - this.props.imagePadding * 2;\n\n if (!stretch) {\n maxHeight = Math.min(maxHeight, height);\n maxWidth = Math.min(maxWidth, width);\n }\n\n var maxRatio = maxWidth / maxHeight;\n var srcRatio = width / height;\n\n if (maxRatio > srcRatio) {\n // height is the constraining dimension of the photo\n return {\n width: width * maxHeight / height,\n height: maxHeight\n };\n }\n\n return {\n width: maxWidth,\n height: height * maxWidth / width\n };\n }\n }, {\n key: \"getMaxOffsets\",\n value: function getMaxOffsets() {\n var zoomLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.zoomLevel;\n var currentImageInfo = this.getBestImageForType('mainSrc');\n\n if (currentImageInfo === null) {\n return {\n maxX: 0,\n minX: 0,\n maxY: 0,\n minY: 0\n };\n }\n\n var boxSize = this.getLightboxRect();\n var zoomMultiplier = this.getZoomMultiplier(zoomLevel);\n var maxX = 0;\n\n if (zoomMultiplier * currentImageInfo.width - boxSize.width < 0) {\n // if there is still blank space in the X dimension, don't limit except to the opposite edge\n maxX = (boxSize.width - zoomMultiplier * currentImageInfo.width) / 2;\n } else {\n maxX = (zoomMultiplier * currentImageInfo.width - boxSize.width) / 2;\n }\n\n var maxY = 0;\n\n if (zoomMultiplier * currentImageInfo.height - boxSize.height < 0) {\n // if there is still blank space in the Y dimension, don't limit except to the opposite edge\n maxY = (boxSize.height - zoomMultiplier * currentImageInfo.height) / 2;\n } else {\n maxY = (zoomMultiplier * currentImageInfo.height - boxSize.height) / 2;\n }\n\n return {\n maxX: maxX,\n maxY: maxY,\n minX: -1 * maxX,\n minY: -1 * maxY\n };\n } // Get image src types\n\n }, {\n key: \"getSrcTypes\",\n value: function getSrcTypes() {\n return [{\n name: 'mainSrc',\n keyEnding: \"i\".concat(this.keyCounter)\n }, {\n name: 'mainSrcThumbnail',\n keyEnding: \"t\".concat(this.keyCounter)\n }, {\n name: 'nextSrc',\n keyEnding: \"i\".concat(this.keyCounter + 1)\n }, {\n name: 'nextSrcThumbnail',\n keyEnding: \"t\".concat(this.keyCounter + 1)\n }, {\n name: 'prevSrc',\n keyEnding: \"i\".concat(this.keyCounter - 1)\n }, {\n name: 'prevSrcThumbnail',\n keyEnding: \"t\".concat(this.keyCounter - 1)\n }];\n }\n /**\n * Get sizing when the image is scaled\n */\n\n }, {\n key: \"getZoomMultiplier\",\n value: function getZoomMultiplier() {\n var zoomLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.zoomLevel;\n return Math.pow(ZOOM_RATIO, zoomLevel);\n }\n /**\n * Get the size of the lightbox in pixels\n */\n\n }, {\n key: \"getLightboxRect\",\n value: function getLightboxRect() {\n if (this.outerEl.current) {\n return this.outerEl.current.getBoundingClientRect();\n }\n\n return {\n width: getWindowWidth(),\n height: getWindowHeight(),\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n }\n }, {\n key: \"clearTimeout\",\n value: function (_clearTimeout) {\n function clearTimeout(_x3) {\n return _clearTimeout.apply(this, arguments);\n }\n\n clearTimeout.toString = function () {\n return _clearTimeout.toString();\n };\n\n return clearTimeout;\n }(function (id) {\n this.timeouts = this.timeouts.filter(function (tid) {\n return tid !== id;\n });\n clearTimeout(id);\n } // Change zoom level\n )\n }, {\n key: \"changeZoom\",\n value: function changeZoom(zoomLevel, clientX, clientY) {\n // Ignore if zoom disabled\n if (!this.props.enableZoom) {\n return;\n } // Constrain zoom level to the set bounds\n\n\n var nextZoomLevel = Math.max(MIN_ZOOM_LEVEL, Math.min(MAX_ZOOM_LEVEL, zoomLevel)); // Ignore requests that don't change the zoom level\n\n if (nextZoomLevel === this.state.zoomLevel) {\n return;\n }\n\n if (nextZoomLevel === MIN_ZOOM_LEVEL) {\n // Snap back to center if zoomed all the way out\n this.setState({\n zoomLevel: nextZoomLevel,\n offsetX: 0,\n offsetY: 0\n });\n return;\n }\n\n var imageBaseSize = this.getBestImageForType('mainSrc');\n\n if (imageBaseSize === null) {\n return;\n }\n\n var currentZoomMultiplier = this.getZoomMultiplier();\n var nextZoomMultiplier = this.getZoomMultiplier(nextZoomLevel); // Default to the center of the image to zoom when no mouse position specified\n\n var boxRect = this.getLightboxRect();\n var pointerX = typeof clientX !== 'undefined' ? clientX - boxRect.left : boxRect.width / 2;\n var pointerY = typeof clientY !== 'undefined' ? clientY - boxRect.top : boxRect.height / 2;\n var currentImageOffsetX = (boxRect.width - imageBaseSize.width * currentZoomMultiplier) / 2;\n var currentImageOffsetY = (boxRect.height - imageBaseSize.height * currentZoomMultiplier) / 2;\n var currentImageRealOffsetX = currentImageOffsetX - this.state.offsetX;\n var currentImageRealOffsetY = currentImageOffsetY - this.state.offsetY;\n var currentPointerXRelativeToImage = (pointerX - currentImageRealOffsetX) / currentZoomMultiplier;\n var currentPointerYRelativeToImage = (pointerY - currentImageRealOffsetY) / currentZoomMultiplier;\n var nextImageRealOffsetX = pointerX - currentPointerXRelativeToImage * nextZoomMultiplier;\n var nextImageRealOffsetY = pointerY - currentPointerYRelativeToImage * nextZoomMultiplier;\n var nextImageOffsetX = (boxRect.width - imageBaseSize.width * nextZoomMultiplier) / 2;\n var nextImageOffsetY = (boxRect.height - imageBaseSize.height * nextZoomMultiplier) / 2;\n var nextOffsetX = nextImageOffsetX - nextImageRealOffsetX;\n var nextOffsetY = nextImageOffsetY - nextImageRealOffsetY; // When zooming out, limit the offset so things don't get left askew\n\n if (this.currentAction !== ACTION_PINCH) {\n var maxOffsets = this.getMaxOffsets();\n\n if (this.state.zoomLevel > nextZoomLevel) {\n nextOffsetX = Math.max(maxOffsets.minX, Math.min(maxOffsets.maxX, nextOffsetX));\n nextOffsetY = Math.max(maxOffsets.minY, Math.min(maxOffsets.maxY, nextOffsetY));\n }\n }\n\n this.setState({\n zoomLevel: nextZoomLevel,\n offsetX: nextOffsetX,\n offsetY: nextOffsetY\n });\n }\n }, {\n key: \"closeIfClickInner\",\n value: function closeIfClickInner(event) {\n if (!this.preventInnerClose && event.target.className.search(/\\bril-inner\\b/) > -1) {\n this.requestClose(event);\n }\n }\n /**\n * Handle user keyboard actions\n */\n\n }, {\n key: \"handleKeyInput\",\n value: function handleKeyInput(event) {\n event.stopPropagation(); // Ignore key input during animations\n\n if (this.isAnimating()) {\n return;\n } // Allow slightly faster navigation through the images when user presses keys repeatedly\n\n\n if (event.type === 'keyup') {\n this.lastKeyDownTime -= this.props.keyRepeatKeyupBonus;\n return;\n }\n\n var keyCode = event.which || event.keyCode; // Ignore key presses that happen too close to each other (when rapid fire key pressing or holding down the key)\n // But allow it if it's a lightbox closing action\n\n var currentTime = new Date();\n\n if (currentTime.getTime() - this.lastKeyDownTime < this.props.keyRepeatLimit && keyCode !== KEYS.ESC) {\n return;\n }\n\n this.lastKeyDownTime = currentTime.getTime();\n\n switch (keyCode) {\n // ESC key closes the lightbox\n case KEYS.ESC:\n event.preventDefault();\n this.requestClose(event);\n break;\n // Left arrow key moves to previous image\n\n case KEYS.LEFT_ARROW:\n if (!this.props.prevSrc) {\n return;\n }\n\n event.preventDefault();\n this.keyPressed = true;\n this.requestMovePrev(event);\n break;\n // Right arrow key moves to next image\n\n case KEYS.RIGHT_ARROW:\n if (!this.props.nextSrc) {\n return;\n }\n\n event.preventDefault();\n this.keyPressed = true;\n this.requestMoveNext(event);\n break;\n }\n }\n /**\n * Handle a mouse wheel event over the lightbox container\n */\n\n }, {\n key: \"handleOuterMousewheel\",\n value: function handleOuterMousewheel(event) {\n var _this8 = this;\n\n // Prevent scrolling of the background\n event.stopPropagation();\n var xThreshold = WHEEL_MOVE_X_THRESHOLD;\n var actionDelay = 0;\n var imageMoveDelay = 500;\n this.clearTimeout(this.resetScrollTimeout);\n this.resetScrollTimeout = this.setTimeout(function () {\n _this8.scrollX = 0;\n _this8.scrollY = 0;\n }, 300); // Prevent rapid-fire zoom behavior\n\n if (this.wheelActionTimeout !== null || this.isAnimating()) {\n return;\n }\n\n if (Math.abs(event.deltaY) < Math.abs(event.deltaX)) {\n // handle horizontal scrolls with image moves\n this.scrollY = 0;\n this.scrollX += event.deltaX;\n var bigLeapX = xThreshold / 2; // If the scroll amount has accumulated sufficiently, or a large leap was taken\n\n if (this.scrollX >= xThreshold || event.deltaX >= bigLeapX) {\n // Scroll right moves to next\n this.requestMoveNext(event);\n actionDelay = imageMoveDelay;\n this.scrollX = 0;\n } else if (this.scrollX <= -1 * xThreshold || event.deltaX <= -1 * bigLeapX) {\n // Scroll left moves to previous\n this.requestMovePrev(event);\n actionDelay = imageMoveDelay;\n this.scrollX = 0;\n }\n } // Allow successive actions after the set delay\n\n\n if (actionDelay !== 0) {\n this.wheelActionTimeout = this.setTimeout(function () {\n _this8.wheelActionTimeout = null;\n }, actionDelay);\n }\n }\n }, {\n key: \"handleImageMouseWheel\",\n value: function handleImageMouseWheel(event) {\n var yThreshold = WHEEL_MOVE_Y_THRESHOLD;\n\n if (Math.abs(event.deltaY) >= Math.abs(event.deltaX)) {\n event.stopPropagation(); // If the vertical scroll amount was large enough, perform a zoom\n\n if (Math.abs(event.deltaY) < yThreshold) {\n return;\n }\n\n this.scrollX = 0;\n this.scrollY += event.deltaY;\n this.changeZoom(this.state.zoomLevel - event.deltaY, event.clientX, event.clientY);\n }\n }\n /**\n * Handle a double click on the current image\n */\n\n }, {\n key: \"handleImageDoubleClick\",\n value: function handleImageDoubleClick(event) {\n if (this.state.zoomLevel > MIN_ZOOM_LEVEL) {\n // A double click when zoomed in zooms all the way out\n this.changeZoom(MIN_ZOOM_LEVEL, event.clientX, event.clientY);\n } else {\n // A double click when zoomed all the way out zooms in\n this.changeZoom(this.state.zoomLevel + ZOOM_BUTTON_INCREMENT_SIZE, event.clientX, event.clientY);\n }\n }\n }, {\n key: \"shouldHandleEvent\",\n value: function shouldHandleEvent(source) {\n if (this.eventsSource === source) {\n return true;\n }\n\n if (this.eventsSource === SOURCE_ANY) {\n this.eventsSource = source;\n return true;\n }\n\n switch (source) {\n case SOURCE_MOUSE:\n return false;\n\n case SOURCE_TOUCH:\n this.eventsSource = SOURCE_TOUCH;\n this.filterPointersBySource();\n return true;\n\n case SOURCE_POINTER:\n if (this.eventsSource === SOURCE_MOUSE) {\n this.eventsSource = SOURCE_POINTER;\n this.filterPointersBySource();\n return true;\n }\n\n return false;\n\n default:\n return false;\n }\n }\n }, {\n key: \"addPointer\",\n value: function addPointer(pointer) {\n this.pointerList.push(pointer);\n }\n }, {\n key: \"removePointer\",\n value: function removePointer(pointer) {\n this.pointerList = this.pointerList.filter(function (_ref) {\n var id = _ref.id;\n return id !== pointer.id;\n });\n }\n }, {\n key: \"filterPointersBySource\",\n value: function filterPointersBySource() {\n var _this9 = this;\n\n this.pointerList = this.pointerList.filter(function (_ref2) {\n var source = _ref2.source;\n return source === _this9.eventsSource;\n });\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(event) {\n if (this.shouldHandleEvent(SOURCE_MOUSE) && ReactImageLightbox.isTargetMatchImage(event.target)) {\n this.addPointer(ReactImageLightbox.parseMouseEvent(event));\n this.multiPointerStart(event);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n if (this.shouldHandleEvent(SOURCE_MOUSE)) {\n this.multiPointerMove(event, [ReactImageLightbox.parseMouseEvent(event)]);\n }\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n if (this.shouldHandleEvent(SOURCE_MOUSE)) {\n this.removePointer(ReactImageLightbox.parseMouseEvent(event));\n this.multiPointerEnd(event);\n }\n }\n }, {\n key: \"handlePointerEvent\",\n value: function handlePointerEvent(event) {\n if (this.shouldHandleEvent(SOURCE_POINTER)) {\n switch (event.type) {\n case 'pointerdown':\n if (ReactImageLightbox.isTargetMatchImage(event.target)) {\n this.addPointer(ReactImageLightbox.parsePointerEvent(event));\n this.multiPointerStart(event);\n }\n\n break;\n\n case 'pointermove':\n this.multiPointerMove(event, [ReactImageLightbox.parsePointerEvent(event)]);\n break;\n\n case 'pointerup':\n case 'pointercancel':\n this.removePointer(ReactImageLightbox.parsePointerEvent(event));\n this.multiPointerEnd(event);\n break;\n }\n }\n }\n }, {\n key: \"handleTouchStart\",\n value: function handleTouchStart(event) {\n var _this10 = this;\n\n if (this.shouldHandleEvent(SOURCE_TOUCH) && ReactImageLightbox.isTargetMatchImage(event.target)) {\n [].forEach.call(event.changedTouches, function (eventTouch) {\n return _this10.addPointer(ReactImageLightbox.parseTouchPointer(eventTouch));\n });\n this.multiPointerStart(event);\n }\n }\n }, {\n key: \"handleTouchMove\",\n value: function handleTouchMove(event) {\n if (this.shouldHandleEvent(SOURCE_TOUCH)) {\n this.multiPointerMove(event, [].map.call(event.changedTouches, function (eventTouch) {\n return ReactImageLightbox.parseTouchPointer(eventTouch);\n }));\n }\n }\n }, {\n key: \"handleTouchEnd\",\n value: function handleTouchEnd(event) {\n var _this11 = this;\n\n if (this.shouldHandleEvent(SOURCE_TOUCH)) {\n [].map.call(event.changedTouches, function (touch) {\n return _this11.removePointer(ReactImageLightbox.parseTouchPointer(touch));\n });\n this.multiPointerEnd(event);\n }\n }\n }, {\n key: \"decideMoveOrSwipe\",\n value: function decideMoveOrSwipe(pointer) {\n if (this.state.zoomLevel <= MIN_ZOOM_LEVEL) {\n this.handleSwipeStart(pointer);\n } else {\n this.handleMoveStart(pointer);\n }\n }\n }, {\n key: \"multiPointerStart\",\n value: function multiPointerStart(event) {\n this.handleEnd(null);\n\n switch (this.pointerList.length) {\n case 1:\n {\n event.preventDefault();\n this.decideMoveOrSwipe(this.pointerList[0]);\n break;\n }\n\n case 2:\n {\n event.preventDefault();\n this.handlePinchStart(this.pointerList);\n break;\n }\n }\n }\n }, {\n key: \"multiPointerMove\",\n value: function multiPointerMove(event, pointerList) {\n switch (this.currentAction) {\n case ACTION_MOVE:\n {\n event.preventDefault();\n this.handleMove(pointerList[0]);\n break;\n }\n\n case ACTION_SWIPE:\n {\n event.preventDefault();\n this.handleSwipe(pointerList[0]);\n break;\n }\n\n case ACTION_PINCH:\n {\n event.preventDefault();\n this.handlePinch(pointerList);\n break;\n }\n }\n }\n }, {\n key: \"multiPointerEnd\",\n value: function multiPointerEnd(event) {\n if (this.currentAction !== ACTION_NONE) {\n this.setPreventInnerClose();\n this.handleEnd(event);\n }\n\n switch (this.pointerList.length) {\n case 0:\n {\n this.eventsSource = SOURCE_ANY;\n break;\n }\n\n case 1:\n {\n event.preventDefault();\n this.decideMoveOrSwipe(this.pointerList[0]);\n break;\n }\n\n case 2:\n {\n event.preventDefault();\n this.handlePinchStart(this.pointerList);\n break;\n }\n }\n }\n }, {\n key: \"handleEnd\",\n value: function handleEnd(event) {\n switch (this.currentAction) {\n case ACTION_MOVE:\n this.handleMoveEnd(event);\n break;\n\n case ACTION_SWIPE:\n this.handleSwipeEnd(event);\n break;\n\n case ACTION_PINCH:\n this.handlePinchEnd(event);\n break;\n }\n } // Handle move start over the lightbox container\n // This happens:\n // - On a mouseDown event\n // - On a touchstart event\n\n }, {\n key: \"handleMoveStart\",\n value: function handleMoveStart(_ref3) {\n var clientX = _ref3.x,\n clientY = _ref3.y;\n\n if (!this.props.enableZoom) {\n return;\n }\n\n this.currentAction = ACTION_MOVE;\n this.moveStartX = clientX;\n this.moveStartY = clientY;\n this.moveStartOffsetX = this.state.offsetX;\n this.moveStartOffsetY = this.state.offsetY;\n } // Handle dragging over the lightbox container\n // This happens:\n // - After a mouseDown and before a mouseUp event\n // - After a touchstart and before a touchend event\n\n }, {\n key: \"handleMove\",\n value: function handleMove(_ref4) {\n var clientX = _ref4.x,\n clientY = _ref4.y;\n var newOffsetX = this.moveStartX - clientX + this.moveStartOffsetX;\n var newOffsetY = this.moveStartY - clientY + this.moveStartOffsetY;\n\n if (this.state.offsetX !== newOffsetX || this.state.offsetY !== newOffsetY) {\n this.setState({\n offsetX: newOffsetX,\n offsetY: newOffsetY\n });\n }\n }\n }, {\n key: \"handleMoveEnd\",\n value: function handleMoveEnd() {\n var _this12 = this;\n\n this.currentAction = ACTION_NONE;\n this.moveStartX = 0;\n this.moveStartY = 0;\n this.moveStartOffsetX = 0;\n this.moveStartOffsetY = 0; // Snap image back into frame if outside max offset range\n\n var maxOffsets = this.getMaxOffsets();\n var nextOffsetX = Math.max(maxOffsets.minX, Math.min(maxOffsets.maxX, this.state.offsetX));\n var nextOffsetY = Math.max(maxOffsets.minY, Math.min(maxOffsets.maxY, this.state.offsetY));\n\n if (nextOffsetX !== this.state.offsetX || nextOffsetY !== this.state.offsetY) {\n this.setState({\n offsetX: nextOffsetX,\n offsetY: nextOffsetY,\n shouldAnimate: true\n });\n this.setTimeout(function () {\n _this12.setState({\n shouldAnimate: false\n });\n }, this.props.animationDuration);\n }\n }\n }, {\n key: \"handleSwipeStart\",\n value: function handleSwipeStart(_ref5) {\n var clientX = _ref5.x,\n clientY = _ref5.y;\n this.currentAction = ACTION_SWIPE;\n this.swipeStartX = clientX;\n this.swipeStartY = clientY;\n this.swipeEndX = clientX;\n this.swipeEndY = clientY;\n }\n }, {\n key: \"handleSwipe\",\n value: function handleSwipe(_ref6) {\n var clientX = _ref6.x,\n clientY = _ref6.y;\n this.swipeEndX = clientX;\n this.swipeEndY = clientY;\n }\n }, {\n key: \"handleSwipeEnd\",\n value: function handleSwipeEnd(event) {\n var xDiff = this.swipeEndX - this.swipeStartX;\n var xDiffAbs = Math.abs(xDiff);\n var yDiffAbs = Math.abs(this.swipeEndY - this.swipeStartY);\n this.currentAction = ACTION_NONE;\n this.swipeStartX = 0;\n this.swipeStartY = 0;\n this.swipeEndX = 0;\n this.swipeEndY = 0;\n\n if (!event || this.isAnimating() || xDiffAbs < yDiffAbs * 1.5) {\n return;\n }\n\n if (xDiffAbs < MIN_SWIPE_DISTANCE) {\n var boxRect = this.getLightboxRect();\n\n if (xDiffAbs < boxRect.width / 4) {\n return;\n }\n }\n\n if (xDiff > 0 && this.props.prevSrc) {\n event.preventDefault();\n this.requestMovePrev();\n } else if (xDiff < 0 && this.props.nextSrc) {\n event.preventDefault();\n this.requestMoveNext();\n }\n }\n }, {\n key: \"calculatePinchDistance\",\n value: function calculatePinchDistance() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.pinchTouchList,\n _ref8 = _slicedToArray(_ref7, 2),\n a = _ref8[0],\n b = _ref8[1];\n\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\n }\n }, {\n key: \"calculatePinchCenter\",\n value: function calculatePinchCenter() {\n var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.pinchTouchList,\n _ref10 = _slicedToArray(_ref9, 2),\n a = _ref10[0],\n b = _ref10[1];\n\n return {\n x: a.x - (a.x - b.x) / 2,\n y: a.y - (a.y - b.y) / 2\n };\n }\n }, {\n key: \"handlePinchStart\",\n value: function handlePinchStart(pointerList) {\n if (!this.props.enableZoom) {\n return;\n }\n\n this.currentAction = ACTION_PINCH;\n this.pinchTouchList = pointerList.map(function (_ref11) {\n var id = _ref11.id,\n x = _ref11.x,\n y = _ref11.y;\n return {\n id: id,\n x: x,\n y: y\n };\n });\n this.pinchDistance = this.calculatePinchDistance();\n }\n }, {\n key: \"handlePinch\",\n value: function handlePinch(pointerList) {\n this.pinchTouchList = this.pinchTouchList.map(function (oldPointer) {\n for (var i = 0; i < pointerList.length; i += 1) {\n if (pointerList[i].id === oldPointer.id) {\n return pointerList[i];\n }\n }\n\n return oldPointer;\n });\n var newDistance = this.calculatePinchDistance();\n var zoomLevel = this.state.zoomLevel + newDistance - this.pinchDistance;\n this.pinchDistance = newDistance;\n\n var _this$calculatePinchC = this.calculatePinchCenter(this.pinchTouchList),\n clientX = _this$calculatePinchC.x,\n clientY = _this$calculatePinchC.y;\n\n this.changeZoom(zoomLevel, clientX, clientY);\n }\n }, {\n key: \"handlePinchEnd\",\n value: function handlePinchEnd() {\n this.currentAction = ACTION_NONE;\n this.pinchTouchList = null;\n this.pinchDistance = 0;\n } // Handle the window resize event\n\n }, {\n key: \"handleWindowResize\",\n value: function handleWindowResize() {\n this.clearTimeout(this.resizeTimeout);\n this.resizeTimeout = this.setTimeout(this.forceUpdate.bind(this), 100);\n }\n }, {\n key: \"handleZoomInButtonClick\",\n value: function handleZoomInButtonClick() {\n var nextZoomLevel = this.state.zoomLevel + ZOOM_BUTTON_INCREMENT_SIZE;\n this.changeZoom(nextZoomLevel);\n\n if (nextZoomLevel === MAX_ZOOM_LEVEL) {\n this.zoomOutBtn.current.focus();\n }\n }\n }, {\n key: \"handleZoomOutButtonClick\",\n value: function handleZoomOutButtonClick() {\n var nextZoomLevel = this.state.zoomLevel - ZOOM_BUTTON_INCREMENT_SIZE;\n this.changeZoom(nextZoomLevel);\n\n if (nextZoomLevel === MIN_ZOOM_LEVEL) {\n this.zoomInBtn.current.focus();\n }\n }\n }, {\n key: \"handleCaptionMousewheel\",\n value: function handleCaptionMousewheel(event) {\n event.stopPropagation();\n\n if (!this.caption.current) {\n return;\n }\n\n var _this$caption$current = this.caption.current.getBoundingClientRect(),\n height = _this$caption$current.height;\n\n var _this$caption$current2 = this.caption.current,\n scrollHeight = _this$caption$current2.scrollHeight,\n scrollTop = _this$caption$current2.scrollTop;\n\n if (event.deltaY > 0 && height + scrollTop >= scrollHeight || event.deltaY < 0 && scrollTop <= 0) {\n event.preventDefault();\n }\n } // Detach key and mouse input events\n\n }, {\n key: \"isAnimating\",\n value: function isAnimating() {\n return this.state.shouldAnimate || this.state.isClosing;\n } // Check if image is loaded\n\n }, {\n key: \"isImageLoaded\",\n value: function isImageLoaded(imageSrc) {\n return imageSrc && imageSrc in this.imageCache && this.imageCache[imageSrc].loaded;\n } // Load image from src and call callback with image width and height on load\n\n }, {\n key: \"loadImage\",\n value: function loadImage(srcType, imageSrc, done) {\n var _this13 = this;\n\n // Return the image info if it is already cached\n if (this.isImageLoaded(imageSrc)) {\n this.setTimeout(function () {\n done();\n }, 1);\n return;\n }\n\n var inMemoryImage = new global.Image();\n\n if (this.props.imageCrossOrigin) {\n inMemoryImage.crossOrigin = this.props.imageCrossOrigin;\n }\n\n inMemoryImage.onerror = function (errorEvent) {\n _this13.props.onImageLoadError(imageSrc, srcType, errorEvent); // failed to load so set the state loadErrorStatus\n\n\n _this13.setState(function (prevState) {\n return {\n loadErrorStatus: _objectSpread2(_objectSpread2({}, prevState.loadErrorStatus), {}, _defineProperty({}, srcType, true))\n };\n });\n\n done(errorEvent);\n };\n\n inMemoryImage.onload = function () {\n _this13.props.onImageLoad(imageSrc, srcType, inMemoryImage);\n\n _this13.imageCache[imageSrc] = {\n loaded: true,\n width: inMemoryImage.width,\n height: inMemoryImage.height\n };\n done();\n };\n\n inMemoryImage.src = imageSrc;\n } // Load all images and their thumbnails\n\n }, {\n key: \"loadAllImages\",\n value: function loadAllImages() {\n var _this14 = this;\n\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n var generateLoadDoneCallback = function generateLoadDoneCallback(srcType, imageSrc) {\n return function (err) {\n // Give up showing image on error\n if (err) {\n return;\n } // Don't rerender if the src is not the same as when the load started\n // or if the component has unmounted\n\n\n if (_this14.props[srcType] !== imageSrc || _this14.didUnmount) {\n return;\n } // Force rerender with the new image\n\n\n _this14.forceUpdate();\n };\n }; // Load the images\n\n\n this.getSrcTypes().forEach(function (srcType) {\n var type = srcType.name; // there is no error when we try to load it initially\n\n if (props[type] && _this14.state.loadErrorStatus[type]) {\n _this14.setState(function (prevState) {\n return {\n loadErrorStatus: _objectSpread2(_objectSpread2({}, prevState.loadErrorStatus), {}, _defineProperty({}, type, false))\n };\n });\n } // Load unloaded images\n\n\n if (props[type] && !_this14.isImageLoaded(props[type])) {\n _this14.loadImage(type, props[type], generateLoadDoneCallback(type, props[type]));\n }\n });\n } // Request that the lightbox be closed\n\n }, {\n key: \"requestClose\",\n value: function requestClose(event) {\n var _this15 = this;\n\n // Call the parent close request\n var closeLightbox = function closeLightbox() {\n return _this15.props.onCloseRequest(event);\n };\n\n if (this.props.animationDisabled || event.type === 'keydown' && !this.props.animationOnKeyInput) {\n // No animation\n closeLightbox();\n return;\n } // With animation\n // Start closing animation\n\n\n this.setState({\n isClosing: true\n }); // Perform the actual closing at the end of the animation\n\n this.setTimeout(closeLightbox, this.props.animationDuration);\n }\n }, {\n key: \"requestMove\",\n value: function requestMove(direction, event) {\n var _this16 = this;\n\n // Reset the zoom level on image move\n var nextState = {\n zoomLevel: MIN_ZOOM_LEVEL,\n offsetX: 0,\n offsetY: 0\n }; // Enable animated states\n\n if (!this.props.animationDisabled && (!this.keyPressed || this.props.animationOnKeyInput)) {\n nextState.shouldAnimate = true;\n this.setTimeout(function () {\n return _this16.setState({\n shouldAnimate: false\n });\n }, this.props.animationDuration);\n }\n\n this.keyPressed = false;\n this.moveRequested = true;\n\n if (direction === 'prev') {\n this.keyCounter -= 1;\n this.setState(nextState);\n this.props.onMovePrevRequest(event);\n } else {\n this.keyCounter += 1;\n this.setState(nextState);\n this.props.onMoveNextRequest(event);\n }\n } // Request to transition to the next image\n\n }, {\n key: \"requestMoveNext\",\n value: function requestMoveNext(event) {\n this.requestMove('next', event);\n } // Request to transition to the previous image\n\n }, {\n key: \"requestMovePrev\",\n value: function requestMovePrev(event) {\n this.requestMove('prev', event);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this17 = this;\n\n var _this$props = this.props,\n animationDisabled = _this$props.animationDisabled,\n animationDuration = _this$props.animationDuration,\n clickOutsideToClose = _this$props.clickOutsideToClose,\n discourageDownloads = _this$props.discourageDownloads,\n enableZoom = _this$props.enableZoom,\n imageTitle = _this$props.imageTitle,\n nextSrc = _this$props.nextSrc,\n prevSrc = _this$props.prevSrc,\n toolbarButtons = _this$props.toolbarButtons,\n reactModalStyle = _this$props.reactModalStyle,\n _onAfterOpen = _this$props.onAfterOpen,\n imageCrossOrigin = _this$props.imageCrossOrigin,\n reactModalProps = _this$props.reactModalProps,\n loader = _this$props.loader;\n var _this$state = this.state,\n zoomLevel = _this$state.zoomLevel,\n offsetX = _this$state.offsetX,\n offsetY = _this$state.offsetY,\n isClosing = _this$state.isClosing,\n loadErrorStatus = _this$state.loadErrorStatus;\n var boxSize = this.getLightboxRect();\n var transitionStyle = {}; // Transition settings for sliding animations\n\n if (!animationDisabled && this.isAnimating()) {\n transitionStyle = _objectSpread2(_objectSpread2({}, transitionStyle), {}, {\n transition: \"transform \".concat(animationDuration, \"ms\")\n });\n } // Key endings to differentiate between images with the same src\n\n\n var keyEndings = {};\n this.getSrcTypes().forEach(function (_ref12) {\n var name = _ref12.name,\n keyEnding = _ref12.keyEnding;\n keyEndings[name] = keyEnding;\n }); // Images to be displayed\n\n var images = [];\n\n var addImage = function addImage(srcType, imageClass, transforms) {\n // Ignore types that have no source defined for their full size image\n if (!_this17.props[srcType]) {\n return;\n }\n\n var bestImageInfo = _this17.getBestImageForType(srcType);\n\n var imageStyle = _objectSpread2(_objectSpread2({}, transitionStyle), ReactImageLightbox.getTransform(_objectSpread2(_objectSpread2({}, transforms), bestImageInfo)));\n\n if (zoomLevel > MIN_ZOOM_LEVEL) {\n imageStyle.cursor = 'move';\n } // support IE 9 and 11\n\n\n var hasTrueValue = function hasTrueValue(object) {\n return Object.keys(object).some(function (key) {\n return object[key];\n });\n }; // when error on one of the loads then push custom error stuff\n\n\n if (bestImageInfo === null && hasTrueValue(loadErrorStatus)) {\n images.push( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(imageClass, \" ril__image ril-errored\"),\n style: imageStyle,\n key: _this17.props[srcType] + keyEndings[srcType]\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"ril__errorContainer\"\n }, _this17.props.imageLoadErrorMessage)));\n return;\n }\n\n if (bestImageInfo === null) {\n var loadingIcon = loader !== undefined ? loader : /*#__PURE__*/React.createElement(\"div\", {\n className: \"ril-loading-circle ril__loadingCircle ril__loadingContainer__icon\"\n }, _toConsumableArray(new Array(12)).map(function (_, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n // eslint-disable-next-line react/no-array-index-key\n key: index,\n className: \"ril-loading-circle-point ril__loadingCirclePoint\"\n });\n })); // Fall back to loading icon if the thumbnail has not been loaded\n\n images.push( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(imageClass, \" ril__image ril-not-loaded\"),\n style: imageStyle,\n key: _this17.props[srcType] + keyEndings[srcType]\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"ril__loadingContainer\"\n }, loadingIcon)));\n return;\n }\n\n var imageSrc = bestImageInfo.src;\n\n if (discourageDownloads) {\n imageStyle.backgroundImage = \"url('\".concat(imageSrc, \"')\");\n images.push( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(imageClass, \" ril__image ril__imageDiscourager\"),\n onDoubleClick: _this17.handleImageDoubleClick,\n onWheel: _this17.handleImageMouseWheel,\n style: imageStyle,\n key: imageSrc + keyEndings[srcType]\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"ril-download-blocker ril__downloadBlocker\"\n })));\n } else {\n images.push( /*#__PURE__*/React.createElement(\"img\", _extends({}, imageCrossOrigin ? {\n crossOrigin: imageCrossOrigin\n } : {}, {\n className: \"\".concat(imageClass, \" ril__image\"),\n onDoubleClick: _this17.handleImageDoubleClick,\n onWheel: _this17.handleImageMouseWheel,\n onDragStart: function onDragStart(e) {\n return e.preventDefault();\n },\n style: imageStyle,\n src: imageSrc,\n key: imageSrc + keyEndings[srcType],\n alt: typeof imageTitle === 'string' ? imageTitle : translate('Image'),\n draggable: false\n })));\n }\n };\n\n var zoomMultiplier = this.getZoomMultiplier(); // Next Image (displayed on the right)\n\n addImage('nextSrc', 'ril-image-next ril__imageNext', {\n x: boxSize.width\n }); // Main Image\n\n addImage('mainSrc', 'ril-image-current', {\n x: -1 * offsetX,\n y: -1 * offsetY,\n zoom: zoomMultiplier\n }); // Previous Image (displayed on the left)\n\n addImage('prevSrc', 'ril-image-prev ril__imagePrev', {\n x: -1 * boxSize.width\n });\n var modalStyle = {\n overlay: _objectSpread2({\n zIndex: 1000,\n backgroundColor: 'transparent'\n }, reactModalStyle.overlay),\n content: _objectSpread2({\n backgroundColor: 'transparent',\n overflow: 'hidden',\n // Needed, otherwise keyboard shortcuts scroll the page\n border: 'none',\n borderRadius: 0,\n padding: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }, reactModalStyle.content)\n };\n return /*#__PURE__*/React.createElement(Modal, _extends({\n isOpen: true,\n onRequestClose: clickOutsideToClose ? this.requestClose : undefined,\n onAfterOpen: function onAfterOpen() {\n // Focus on the div with key handlers\n if (_this17.outerEl.current) {\n _this17.outerEl.current.focus();\n }\n\n _onAfterOpen();\n },\n style: modalStyle,\n contentLabel: translate('Lightbox'),\n appElement: typeof global.window !== 'undefined' ? global.window.document.body : undefined\n }, reactModalProps), /*#__PURE__*/React.createElement(\"div\", {\n // eslint-disable-line jsx-a11y/no-static-element-interactions\n // Floating modal with closing animations\n className: \"ril-outer ril__outer ril__outerAnimating \".concat(this.props.wrapperClassName, \" \").concat(isClosing ? 'ril-closing ril__outerClosing' : ''),\n style: {\n transition: \"opacity \".concat(animationDuration, \"ms\"),\n animationDuration: \"\".concat(animationDuration, \"ms\"),\n animationDirection: isClosing ? 'normal' : 'reverse'\n },\n ref: this.outerEl,\n onWheel: this.handleOuterMousewheel,\n onMouseMove: this.handleMouseMove,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n onTouchMove: this.handleTouchMove,\n tabIndex: \"-1\" // Enables key handlers on div\n ,\n onKeyDown: this.handleKeyInput,\n onKeyUp: this.handleKeyInput\n }, /*#__PURE__*/React.createElement(\"div\", {\n // eslint-disable-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events\n // Image holder\n className: \"ril-inner ril__inner\",\n onClick: clickOutsideToClose ? this.closeIfClickInner : undefined\n }, images), prevSrc && /*#__PURE__*/React.createElement(\"button\", {\n // Move to previous image button\n type: \"button\",\n className: \"ril-prev-button ril__navButtons ril__navButtonPrev\",\n key: \"prev\",\n \"aria-label\": this.props.prevLabel,\n title: this.props.prevLabel,\n onClick: !this.isAnimating() ? this.requestMovePrev : undefined // Ignore clicks during animation\n\n }), nextSrc && /*#__PURE__*/React.createElement(\"button\", {\n // Move to next image button\n type: \"button\",\n className: \"ril-next-button ril__navButtons ril__navButtonNext\",\n key: \"next\",\n \"aria-label\": this.props.nextLabel,\n title: this.props.nextLabel,\n onClick: !this.isAnimating() ? this.requestMoveNext : undefined // Ignore clicks during animation\n\n }), /*#__PURE__*/React.createElement(\"div\", {\n // Lightbox toolbar\n className: \"ril-toolbar ril__toolbar\"\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"ril-toolbar-left ril__toolbarSide ril__toolbarLeftSide\"\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"ril-toolbar__item ril__toolbarItem\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"ril-toolbar__item__child ril__toolbarItemChild\"\n }, imageTitle))), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"ril-toolbar-right ril__toolbarSide ril__toolbarRightSide\"\n }, toolbarButtons && toolbarButtons.map(function (button, i) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: \"button_\".concat(i + 1),\n className: \"ril-toolbar__item ril__toolbarItem\"\n }, button);\n }), enableZoom && /*#__PURE__*/React.createElement(\"li\", {\n className: \"ril-toolbar__item ril__toolbarItem\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n // Lightbox zoom in button\n type: \"button\",\n key: \"zoom-in\",\n \"aria-label\": this.props.zoomInLabel,\n title: this.props.zoomInLabel,\n className: ['ril-zoom-in', 'ril__toolbarItemChild', 'ril__builtinButton', 'ril__zoomInButton'].concat(_toConsumableArray(zoomLevel === MAX_ZOOM_LEVEL ? ['ril__builtinButtonDisabled'] : [])).join(' '),\n ref: this.zoomInBtn,\n disabled: this.isAnimating() || zoomLevel === MAX_ZOOM_LEVEL,\n onClick: !this.isAnimating() && zoomLevel !== MAX_ZOOM_LEVEL ? this.handleZoomInButtonClick : undefined\n })), enableZoom && /*#__PURE__*/React.createElement(\"li\", {\n className: \"ril-toolbar__item ril__toolbarItem\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n // Lightbox zoom out button\n type: \"button\",\n key: \"zoom-out\",\n \"aria-label\": this.props.zoomOutLabel,\n title: this.props.zoomOutLabel,\n className: ['ril-zoom-out', 'ril__toolbarItemChild', 'ril__builtinButton', 'ril__zoomOutButton'].concat(_toConsumableArray(zoomLevel === MIN_ZOOM_LEVEL ? ['ril__builtinButtonDisabled'] : [])).join(' '),\n ref: this.zoomOutBtn,\n disabled: this.isAnimating() || zoomLevel === MIN_ZOOM_LEVEL,\n onClick: !this.isAnimating() && zoomLevel !== MIN_ZOOM_LEVEL ? this.handleZoomOutButtonClick : undefined\n })), /*#__PURE__*/React.createElement(\"li\", {\n className: \"ril-toolbar__item ril__toolbarItem\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n // Lightbox close button\n type: \"button\",\n key: \"close\",\n \"aria-label\": this.props.closeLabel,\n title: this.props.closeLabel,\n className: \"ril-close ril-toolbar__item__child ril__toolbarItemChild ril__builtinButton ril__closeButton\",\n onClick: !this.isAnimating() ? this.requestClose : undefined // Ignore clicks during animation\n\n })))), this.props.imageCaption &&\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n React.createElement(\"div\", {\n // Image caption\n onWheel: this.handleCaptionMousewheel,\n onMouseDown: function onMouseDown(event) {\n return event.stopPropagation();\n },\n className: \"ril-caption ril__caption\",\n ref: this.caption\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"ril-caption-content ril__captionContent\"\n }, this.props.imageCaption))));\n }\n }], [{\n key: \"isTargetMatchImage\",\n value: function isTargetMatchImage(target) {\n return target && /ril-image-current/.test(target.className);\n }\n }, {\n key: \"parseMouseEvent\",\n value: function parseMouseEvent(mouseEvent) {\n return {\n id: 'mouse',\n source: SOURCE_MOUSE,\n x: parseInt(mouseEvent.clientX, 10),\n y: parseInt(mouseEvent.clientY, 10)\n };\n }\n }, {\n key: \"parseTouchPointer\",\n value: function parseTouchPointer(touchPointer) {\n return {\n id: touchPointer.identifier,\n source: SOURCE_TOUCH,\n x: parseInt(touchPointer.clientX, 10),\n y: parseInt(touchPointer.clientY, 10)\n };\n }\n }, {\n key: \"parsePointerEvent\",\n value: function parsePointerEvent(pointerEvent) {\n return {\n id: pointerEvent.pointerId,\n source: SOURCE_POINTER,\n x: parseInt(pointerEvent.clientX, 10),\n y: parseInt(pointerEvent.clientY, 10)\n };\n } // Request to transition to the previous image\n\n }, {\n key: \"getTransform\",\n value: function getTransform(_ref13) {\n var _ref13$x = _ref13.x,\n x = _ref13$x === void 0 ? 0 : _ref13$x,\n _ref13$y = _ref13.y,\n y = _ref13$y === void 0 ? 0 : _ref13$y,\n _ref13$zoom = _ref13.zoom,\n zoom = _ref13$zoom === void 0 ? 1 : _ref13$zoom,\n width = _ref13.width,\n targetWidth = _ref13.targetWidth;\n var nextX = x;\n var windowWidth = getWindowWidth();\n\n if (width > windowWidth) {\n nextX += (windowWidth - width) / 2;\n }\n\n var scaleFactor = zoom * (targetWidth / width);\n return {\n transform: \"translate3d(\".concat(nextX, \"px,\").concat(y, \"px,0) scale3d(\").concat(scaleFactor, \",\").concat(scaleFactor, \",1)\")\n };\n }\n }]);\n\n return ReactImageLightbox;\n}(Component);\n\nReactImageLightbox.propTypes = {\n //-----------------------------\n // Image sources\n //-----------------------------\n // Main display image url\n mainSrc: PropTypes.string.isRequired,\n // eslint-disable-line react/no-unused-prop-types\n // Previous display image url (displayed to the left)\n // If left undefined, movePrev actions will not be performed, and the button not displayed\n prevSrc: PropTypes.string,\n // Next display image url (displayed to the right)\n // If left undefined, moveNext actions will not be performed, and the button not displayed\n nextSrc: PropTypes.string,\n //-----------------------------\n // Image thumbnail sources\n //-----------------------------\n // Thumbnail image url corresponding to props.mainSrc\n mainSrcThumbnail: PropTypes.string,\n // eslint-disable-line react/no-unused-prop-types\n // Thumbnail image url corresponding to props.prevSrc\n prevSrcThumbnail: PropTypes.string,\n // eslint-disable-line react/no-unused-prop-types\n // Thumbnail image url corresponding to props.nextSrc\n nextSrcThumbnail: PropTypes.string,\n // eslint-disable-line react/no-unused-prop-types\n //-----------------------------\n // Event Handlers\n //-----------------------------\n // Close window event\n // Should change the parent state such that the lightbox is not rendered\n onCloseRequest: PropTypes.func.isRequired,\n // Move to previous image event\n // Should change the parent state such that props.prevSrc becomes props.mainSrc,\n // props.mainSrc becomes props.nextSrc, etc.\n onMovePrevRequest: PropTypes.func,\n // Move to next image event\n // Should change the parent state such that props.nextSrc becomes props.mainSrc,\n // props.mainSrc becomes props.prevSrc, etc.\n onMoveNextRequest: PropTypes.func,\n // Called when an image fails to load\n // (imageSrc: string, srcType: string, errorEvent: object): void\n onImageLoadError: PropTypes.func,\n // Called when image successfully loads\n onImageLoad: PropTypes.func,\n // Open window event\n onAfterOpen: PropTypes.func,\n //-----------------------------\n // Download discouragement settings\n //-----------------------------\n // Enable download discouragement (prevents [right-click -> Save Image As...])\n discourageDownloads: PropTypes.bool,\n //-----------------------------\n // Animation settings\n //-----------------------------\n // Disable all animation\n animationDisabled: PropTypes.bool,\n // Disable animation on actions performed with keyboard shortcuts\n animationOnKeyInput: PropTypes.bool,\n // Animation duration (ms)\n animationDuration: PropTypes.number,\n //-----------------------------\n // Keyboard shortcut settings\n //-----------------------------\n // Required interval of time (ms) between key actions\n // (prevents excessively fast navigation of images)\n keyRepeatLimit: PropTypes.number,\n // Amount of time (ms) restored after each keyup\n // (makes rapid key presses slightly faster than holding down the key to navigate images)\n keyRepeatKeyupBonus: PropTypes.number,\n //-----------------------------\n // Image info\n //-----------------------------\n // Image title\n imageTitle: PropTypes.node,\n // Image caption\n imageCaption: PropTypes.node,\n // Optional crossOrigin attribute\n imageCrossOrigin: PropTypes.string,\n //-----------------------------\n // Lightbox style\n //-----------------------------\n // Set z-index style, etc., for the parent react-modal (format: https://github.com/reactjs/react-modal#styles )\n reactModalStyle: PropTypes.shape({}),\n // Padding (px) between the edge of the window and the lightbox\n imagePadding: PropTypes.number,\n wrapperClassName: PropTypes.string,\n //-----------------------------\n // Other\n //-----------------------------\n // Array of custom toolbar buttons\n toolbarButtons: PropTypes.arrayOf(PropTypes.node),\n // When true, clicks outside of the image close the lightbox\n clickOutsideToClose: PropTypes.bool,\n // Set to false to disable zoom functionality and hide zoom buttons\n enableZoom: PropTypes.bool,\n // Override props set on react-modal (https://github.com/reactjs/react-modal)\n reactModalProps: PropTypes.shape({}),\n // Aria-labels\n nextLabel: PropTypes.string,\n prevLabel: PropTypes.string,\n zoomInLabel: PropTypes.string,\n zoomOutLabel: PropTypes.string,\n closeLabel: PropTypes.string,\n imageLoadErrorMessage: PropTypes.node,\n // custom loader\n loader: PropTypes.node\n};\nReactImageLightbox.defaultProps = {\n imageTitle: null,\n imageCaption: null,\n toolbarButtons: null,\n reactModalProps: {},\n animationDisabled: false,\n animationDuration: 300,\n animationOnKeyInput: false,\n clickOutsideToClose: true,\n closeLabel: 'Close lightbox',\n discourageDownloads: false,\n enableZoom: true,\n imagePadding: 10,\n imageCrossOrigin: null,\n keyRepeatKeyupBonus: 40,\n keyRepeatLimit: 180,\n mainSrcThumbnail: null,\n nextLabel: 'Next image',\n nextSrc: null,\n nextSrcThumbnail: null,\n onAfterOpen: function onAfterOpen() {},\n onImageLoadError: function onImageLoadError() {},\n onImageLoad: function onImageLoad() {},\n onMoveNextRequest: function onMoveNextRequest() {},\n onMovePrevRequest: function onMovePrevRequest() {},\n prevLabel: 'Previous image',\n prevSrc: null,\n prevSrcThumbnail: null,\n reactModalStyle: {},\n wrapperClassName: '',\n zoomInLabel: 'Zoom in',\n zoomOutLabel: 'Zoom out',\n imageLoadErrorMessage: 'This image failed to load',\n loader: undefined\n};\n\nexport default ReactImageLightbox;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import * as React from 'react';\nimport {useState, useCallback, useMemo, useContext} from 'react';\n\nimport {MapRef} from '../mapbox/create-ref';\nimport {MapContext} from './map';\nimport {MapInstance} from '../types';\n\ntype MountedMapsContextValue = {\n maps: {[id: string]: MapRef};\n onMapMount: (map: MapRef, id: string) => void;\n onMapUnmount: (id: string) => void;\n};\n\nexport const MountedMapsContext = React.createContext(null);\n\nexport const MapProvider: React.FC<{children?: React.ReactNode}> = props => {\n const [maps, setMaps] = useState<{[id: string]: MapRef}>({});\n\n const onMapMount = useCallback((map: MapRef, id: string = 'default') => {\n setMaps(currMaps => {\n if (id === 'current') {\n throw new Error(\"'current' cannot be used as map id\");\n }\n if (currMaps[id]) {\n throw new Error(`Multiple maps with the same id: ${id}`);\n }\n return {...currMaps, [id]: map};\n });\n }, []);\n\n const onMapUnmount = useCallback((id: string = 'default') => {\n setMaps(currMaps => {\n if (currMaps[id]) {\n const nextMaps = {...currMaps};\n delete nextMaps[id];\n return nextMaps;\n }\n return currMaps;\n });\n }, []);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport type MapCollection = {\n [id: string]: MapRef | undefined;\n current?: MapRef;\n};\n\nexport function useMap(): MapCollection {\n const maps = useContext(MountedMapsContext)?.maps;\n const currentMap = useContext(MapContext);\n\n const mapsWithCurrent = useMemo(() => {\n return {...maps, current: currentMap?.map};\n }, [maps, currentMap]);\n\n return mapsWithCurrent as MapCollection;\n}\n","import type {PointLike} from '../types';\n\n/**\n * Compare two points\n * @param a\n * @param b\n * @returns true if the points are equal\n */\nexport function arePointsEqual(a?: PointLike, b?: PointLike): boolean {\n const ax = Array.isArray(a) ? a[0] : a ? a.x : 0;\n const ay = Array.isArray(a) ? a[1] : a ? a.y : 0;\n const bx = Array.isArray(b) ? b[0] : b ? b.x : 0;\n const by = Array.isArray(b) ? b[1] : b ? b.y : 0;\n return ax === bx && ay === by;\n}\n\n/* eslint-disable complexity */\n/**\n * Compare any two objects\n * @param a\n * @param b\n * @returns true if the objects are deep equal\n */\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n if (typeof a === 'object' && typeof b === 'object') {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (const key of aKeys) {\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","import type {MapboxProps} from '../mapbox/mapbox';\nimport type {Transform, ViewState} from '../types';\nimport {deepEqual} from './deep-equal';\n\n/**\n * Make a copy of a transform\n * @param tr\n */\nexport function cloneTransform(tr: Transform): Transform {\n const newTransform = tr.clone();\n // Work around mapbox bug - this value is not assigned in clone(), only in resize()\n newTransform.pixelsToGLUnits = tr.pixelsToGLUnits;\n return newTransform;\n}\n\n/**\n * Copy projection from one transform to another. This only applies to mapbox-gl transforms\n * @param src the transform to copy projection settings from\n * @param dest to transform to copy projection settings to\n */\nexport function syncProjection(src: Transform, dest: Transform): void {\n if (!src.getProjection) {\n return;\n }\n const srcProjection = src.getProjection();\n const destProjection = dest.getProjection();\n\n if (!deepEqual(srcProjection, destProjection)) {\n dest.setProjection(srcProjection);\n }\n}\n\n/**\n * Capture a transform's current state\n * @param transform\n * @returns descriptor of the view state\n */\nexport function transformToViewState(tr: Transform): ViewState {\n return {\n longitude: tr.center.lng,\n latitude: tr.center.lat,\n zoom: tr.zoom,\n pitch: tr.pitch,\n bearing: tr.bearing,\n padding: tr.padding\n };\n}\n\n/* eslint-disable complexity */\n/**\n * Mutate a transform to match the given view state\n * @param transform\n * @param viewState\n * @returns true if the transform has changed\n */\nexport function applyViewStateToTransform(tr: Transform, props: MapboxProps): boolean {\n const v: Partial = props.viewState || props;\n let changed = false;\n\n if ('zoom' in v) {\n const zoom = tr.zoom;\n tr.zoom = v.zoom;\n changed = changed || zoom !== tr.zoom;\n }\n if ('bearing' in v) {\n const bearing = tr.bearing;\n tr.bearing = v.bearing;\n changed = changed || bearing !== tr.bearing;\n }\n if ('pitch' in v) {\n const pitch = tr.pitch;\n tr.pitch = v.pitch;\n changed = changed || pitch !== tr.pitch;\n }\n if (v.padding && !tr.isPaddingEqual(v.padding)) {\n changed = true;\n tr.padding = v.padding;\n }\n if ('longitude' in v && 'latitude' in v) {\n const center = tr.center;\n // @ts-ignore\n tr.center = new center.constructor(v.longitude, v.latitude);\n changed = changed || center !== tr.center;\n }\n return changed;\n}\n","import {ImmutableLike, MapStyle} from '../types';\n\nconst refProps = ['type', 'source', 'source-layer', 'minzoom', 'maxzoom', 'filter', 'layout'];\n\n// Prepare a map style object for diffing\n// If immutable - convert to plain object\n// Work around some issues in older styles that would fail Mapbox's diffing\nexport function normalizeStyle(\n style: string | MapStyle | ImmutableLike\n): string | MapStyle {\n if (!style) {\n return null;\n }\n if (typeof style === 'string') {\n return style;\n }\n if ('toJS' in style) {\n style = style.toJS();\n }\n if (!style.layers) {\n return style;\n }\n const layerIndex = {};\n\n for (const layer of style.layers) {\n layerIndex[layer.id] = layer;\n }\n\n const layers = style.layers.map(layer => {\n let normalizedLayer: typeof layer = null;\n\n if ('interactive' in layer) {\n normalizedLayer = Object.assign({}, layer);\n // Breaks style diffing :(\n // @ts-ignore legacy field not typed\n delete normalizedLayer.interactive;\n }\n\n // Style diffing doesn't work with refs so expand them out manually before diffing.\n // @ts-ignore legacy field not typed\n const layerRef = layerIndex[layer.ref];\n if (layerRef) {\n normalizedLayer = normalizedLayer || Object.assign({}, layer);\n // @ts-ignore\n delete normalizedLayer.ref;\n // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/deref.js\n for (const propName of refProps) {\n if (propName in layerRef) {\n normalizedLayer[propName] = layerRef[propName];\n }\n }\n }\n\n return normalizedLayer || layer;\n });\n\n // Do not mutate the style object provided by the user\n return {...style, layers};\n}\n","import {\n transformToViewState,\n applyViewStateToTransform,\n cloneTransform,\n syncProjection\n} from '../utils/transform';\nimport {normalizeStyle} from '../utils/style-utils';\nimport {deepEqual} from '../utils/deep-equal';\n\nimport type {\n Transform,\n ViewState,\n ViewStateChangeEvent,\n Point,\n PointLike,\n PaddingOptions,\n MapStyle,\n ImmutableLike,\n LngLatBoundsLike,\n Callbacks,\n MapEvent,\n ErrorEvent,\n MapMouseEvent,\n MapGeoJSONFeature,\n MapInstance,\n MapInstanceInternal\n} from '../types';\n\nexport type MapboxProps<\n StyleT extends MapStyle = MapStyle,\n CallbacksT extends Callbacks = {}\n> = Partial &\n CallbacksT & {\n // Init options\n mapboxAccessToken?: string;\n\n /** Camera options used when constructing the Map instance */\n initialViewState?: Partial & {\n /** The initial bounds of the map. If bounds is specified, it overrides longitude, latitude and zoom options. */\n bounds?: LngLatBoundsLike;\n /** A fitBounds options object to use only when setting the bounds option. */\n fitBoundsOptions?: {\n offset?: PointLike;\n minZoom?: number;\n maxZoom?: number;\n padding?: number | PaddingOptions;\n };\n };\n\n /** If provided, render into an external WebGL context */\n gl?: WebGLRenderingContext;\n\n /** For external controller to override the camera state */\n viewState?: ViewState & {\n width: number;\n height: number;\n };\n\n // Styling\n\n /** Mapbox style */\n mapStyle?: string | StyleT | ImmutableLike;\n /** Enable diffing when the map style changes\n * @default true\n */\n styleDiffing?: boolean;\n /** The fog property of the style. Must conform to the Fog Style Specification .\n * If `undefined` is provided, removes the fog from the map. */\n fog?: StyleT['fog'];\n /** Light properties of the map. */\n light?: StyleT['light'];\n /** Terrain property of the style. Must conform to the Terrain Style Specification .\n * If `undefined` is provided, removes terrain from the map. */\n terrain?: StyleT['terrain'];\n\n /** Default layers to query on pointer events */\n interactiveLayerIds?: string[];\n /** CSS cursor */\n cursor?: string;\n };\n\nconst DEFAULT_STYLE = {version: 8, sources: {}, layers: []} as MapStyle;\n\nconst pointerEvents = {\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n click: 'onClick',\n dblclick: 'onDblClick',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n mouseout: 'onMouseOut',\n contextmenu: 'onContextMenu',\n touchstart: 'onTouchStart',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchcancel: 'onTouchCancel'\n};\nconst cameraEvents = {\n movestart: 'onMoveStart',\n move: 'onMove',\n moveend: 'onMoveEnd',\n dragstart: 'onDragStart',\n drag: 'onDrag',\n dragend: 'onDragEnd',\n zoomstart: 'onZoomStart',\n zoom: 'onZoom',\n zoomend: 'onZoomEnd',\n rotatestart: 'onRotateStart',\n rotate: 'onRotate',\n rotateend: 'onRotateEnd',\n pitchstart: 'onPitchStart',\n pitch: 'onPitch',\n pitchend: 'onPitchEnd'\n};\nconst otherEvents = {\n wheel: 'onWheel',\n boxzoomstart: 'onBoxZoomStart',\n boxzoomend: 'onBoxZoomEnd',\n boxzoomcancel: 'onBoxZoomCancel',\n resize: 'onResize',\n load: 'onLoad',\n render: 'onRender',\n idle: 'onIdle',\n remove: 'onRemove',\n data: 'onData',\n styledata: 'onStyleData',\n sourcedata: 'onSourceData',\n error: 'onError'\n};\nconst settingNames = [\n 'minZoom',\n 'maxZoom',\n 'minPitch',\n 'maxPitch',\n 'maxBounds',\n 'projection',\n 'renderWorldCopies'\n];\nconst handlerNames = [\n 'scrollZoom',\n 'boxZoom',\n 'dragRotate',\n 'dragPan',\n 'keyboard',\n 'doubleClickZoom',\n 'touchZoomRotate',\n 'touchPitch'\n];\n\n/**\n * A wrapper for mapbox-gl's Map class\n */\nexport default class Mapbox<\n StyleT extends MapStyle = MapStyle,\n CallbacksT extends Callbacks = {},\n MapT extends MapInstance = MapInstance\n> {\n private _MapClass: {new (options: any): MapInstance};\n // mapboxgl.Map instance\n private _map: MapInstanceInternal = null;\n // User-supplied props\n props: MapboxProps;\n\n // Mapbox map is stateful.\n // During method calls/user interactions, map.transform is mutated and\n // deviate from user-supplied props.\n // In order to control the map reactively, we shadow the transform\n // with the one below, which reflects the view state resolved from\n // both user-supplied props and the underlying state\n private _renderTransform: Transform;\n\n // Internal states\n private _internalUpdate: boolean = false;\n private _inRender: boolean = false;\n private _hoveredFeatures: MapGeoJSONFeature[] = null;\n private _deferredEvents: {\n move: boolean;\n zoom: boolean;\n pitch: boolean;\n rotate: boolean;\n } = {\n move: false,\n zoom: false,\n pitch: false,\n rotate: false\n };\n\n static savedMaps: Mapbox[] = [];\n\n constructor(\n MapClass: {new (options: any): MapInstance},\n props: MapboxProps,\n container: HTMLDivElement\n ) {\n this._MapClass = MapClass;\n this.props = props;\n this._initialize(container);\n }\n\n get map(): MapT {\n return this._map;\n }\n\n get transform(): Transform {\n return this._renderTransform;\n }\n\n setProps(props: MapboxProps) {\n const oldProps = this.props;\n this.props = props;\n\n const settingsChanged = this._updateSettings(props, oldProps);\n if (settingsChanged) {\n this._createShadowTransform(this._map);\n }\n const sizeChanged = this._updateSize(props);\n const viewStateChanged = this._updateViewState(props, true);\n this._updateStyle(props, oldProps);\n this._updateStyleComponents(props, oldProps);\n this._updateHandlers(props, oldProps);\n\n // If 1) view state has changed to match props and\n // 2) the props change is not triggered by map events,\n // it's driven by an external state change. Redraw immediately\n if (settingsChanged || sizeChanged || (viewStateChanged && !this._map.isMoving())) {\n this.redraw();\n }\n }\n\n static reuse(\n props: MapboxProps,\n container: HTMLDivElement\n ): Mapbox {\n const that = Mapbox.savedMaps.pop() as Mapbox;\n if (!that) {\n return null;\n }\n\n const map = that.map;\n // When reusing the saved map, we need to reparent the map(canvas) and other child nodes\n // intoto the new container from the props.\n // Step 1: reparenting child nodes from old container to new container\n const oldContainer = map.getContainer();\n container.className = oldContainer.className;\n while (oldContainer.childNodes.length > 0) {\n container.appendChild(oldContainer.childNodes[0]);\n }\n // Step 2: replace the internal container with new container from the react component\n // @ts-ignore\n map._container = container;\n\n // With maplibre-gl as mapLib, map uses ResizeObserver to observe when its container resizes.\n // When reusing the saved map, we need to disconnect the observer and observe the new container.\n // Step 3: telling the ResizeObserver to disconnect and observe the new container\n // @ts-ignore\n const resizeObserver = map._resizeObserver;\n if (resizeObserver) {\n resizeObserver.disconnect();\n resizeObserver.observe(container);\n }\n\n // Step 4: apply new props\n that.setProps({...props, styleDiffing: false});\n map.resize();\n const {initialViewState} = props;\n if (initialViewState) {\n if (initialViewState.bounds) {\n map.fitBounds(initialViewState.bounds, {...initialViewState.fitBoundsOptions, duration: 0});\n } else {\n that._updateViewState(initialViewState, false);\n }\n }\n\n // Simulate load event\n if (map.isStyleLoaded()) {\n map.fire('load');\n } else {\n map.once('styledata', () => map.fire('load'));\n }\n\n // Force reload\n // @ts-ignore\n map._update();\n return that;\n }\n\n /* eslint-disable complexity,max-statements */\n _initialize(container: HTMLDivElement) {\n const {props} = this;\n const {mapStyle = DEFAULT_STYLE} = props;\n const mapOptions = {\n ...props,\n ...props.initialViewState,\n accessToken: props.mapboxAccessToken || getAccessTokenFromEnv() || null,\n container,\n style: normalizeStyle(mapStyle)\n };\n\n const viewState = mapOptions.initialViewState || mapOptions.viewState || mapOptions;\n Object.assign(mapOptions, {\n center: [viewState.longitude || 0, viewState.latitude || 0],\n zoom: viewState.zoom || 0,\n pitch: viewState.pitch || 0,\n bearing: viewState.bearing || 0\n });\n\n if (props.gl) {\n // eslint-disable-next-line\n const getContext = HTMLCanvasElement.prototype.getContext;\n // Hijack canvas.getContext to return our own WebGLContext\n // This will be called inside the mapboxgl.Map constructor\n // @ts-expect-error\n HTMLCanvasElement.prototype.getContext = () => {\n // Unhijack immediately\n HTMLCanvasElement.prototype.getContext = getContext;\n return props.gl;\n };\n }\n\n const map = new this._MapClass(mapOptions) as MapInstanceInternal;\n // Props that are not part of constructor options\n if (viewState.padding) {\n map.setPadding(viewState.padding);\n }\n if (props.cursor) {\n map.getCanvas().style.cursor = props.cursor;\n }\n this._createShadowTransform(map);\n\n // Hack\n // Insert code into map's render cycle\n const renderMap = map._render;\n map._render = (arg: number) => {\n this._inRender = true;\n renderMap.call(map, arg);\n this._inRender = false;\n };\n const runRenderTaskQueue = map._renderTaskQueue.run;\n map._renderTaskQueue.run = (arg: number) => {\n runRenderTaskQueue.call(map._renderTaskQueue, arg);\n this._onBeforeRepaint();\n };\n map.on('render', () => this._onAfterRepaint());\n // Insert code into map's event pipeline\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const fireEvent = map.fire;\n map.fire = this._fireEvent.bind(this, fireEvent);\n\n // add listeners\n map.on('resize', () => {\n this._renderTransform.resize(map.transform.width, map.transform.height);\n });\n map.on('styledata', () => {\n this._updateStyleComponents(this.props, {});\n // Projection can be set in stylesheet\n syncProjection(map.transform, this._renderTransform);\n });\n map.on('sourcedata', () => this._updateStyleComponents(this.props, {}));\n for (const eventName in pointerEvents) {\n map.on(eventName, this._onPointerEvent);\n }\n for (const eventName in cameraEvents) {\n map.on(eventName, this._onCameraEvent);\n }\n for (const eventName in otherEvents) {\n map.on(eventName, this._onEvent);\n }\n this._map = map;\n }\n /* eslint-enable complexity,max-statements */\n\n recycle() {\n // Clean up unnecessary elements before storing for reuse.\n const container = this.map.getContainer();\n const children = container.querySelector('[mapboxgl-children]');\n children?.remove();\n\n Mapbox.savedMaps.push(this);\n }\n\n destroy() {\n this._map.remove();\n }\n\n // Force redraw the map now. Typically resize() and jumpTo() is reflected in the next\n // render cycle, which is managed by Mapbox's animation loop.\n // This removes the synchronization issue caused by requestAnimationFrame.\n redraw() {\n const map = this._map as any;\n // map._render will throw error if style does not exist\n // https://github.com/mapbox/mapbox-gl-js/blob/fb9fc316da14e99ff4368f3e4faa3888fb43c513\n // /src/ui/map.js#L1834\n if (!this._inRender && map.style) {\n // cancel the scheduled update\n if (map._frame) {\n map._frame.cancel();\n map._frame = null;\n }\n // the order is important - render() may schedule another update\n map._render();\n }\n }\n\n _createShadowTransform(map: any) {\n const renderTransform = cloneTransform(map.transform);\n map.painter.transform = renderTransform;\n\n this._renderTransform = renderTransform;\n }\n\n /* Trigger map resize if size is controlled\n @param {object} nextProps\n @returns {bool} true if size has changed\n */\n _updateSize(nextProps: MapboxProps): boolean {\n // Check if size is controlled\n const {viewState} = nextProps;\n if (viewState) {\n const map = this._map;\n if (viewState.width !== map.transform.width || viewState.height !== map.transform.height) {\n map.resize();\n return true;\n }\n }\n return false;\n }\n\n // Adapted from map.jumpTo\n /* Update camera to match props\n @param {object} nextProps\n @param {bool} triggerEvents - should fire camera events\n @returns {bool} true if anything is changed\n */\n _updateViewState(nextProps: MapboxProps, triggerEvents: boolean): boolean {\n if (this._internalUpdate) {\n return false;\n }\n const map = this._map;\n\n const tr = this._renderTransform;\n // Take a snapshot of the transform before mutation\n const {zoom, pitch, bearing} = tr;\n const isMoving = map.isMoving();\n\n if (isMoving) {\n // All movement of the camera is done relative to the sea level\n tr.cameraElevationReference = 'sea';\n }\n const changed = applyViewStateToTransform(tr, {\n ...transformToViewState(map.transform),\n ...nextProps\n });\n if (isMoving) {\n // Reset camera reference\n tr.cameraElevationReference = 'ground';\n }\n\n if (changed && triggerEvents) {\n const deferredEvents = this._deferredEvents;\n // Delay DOM control updates to the next render cycle\n deferredEvents.move = true;\n deferredEvents.zoom ||= zoom !== tr.zoom;\n deferredEvents.rotate ||= bearing !== tr.bearing;\n deferredEvents.pitch ||= pitch !== tr.pitch;\n }\n\n // Avoid manipulating the real transform when interaction/animation is ongoing\n // as it would interfere with Mapbox's handlers\n if (!isMoving) {\n applyViewStateToTransform(map.transform, nextProps);\n }\n\n return changed;\n }\n\n /* Update camera constraints and projection settings to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateSettings(nextProps: MapboxProps, currProps: MapboxProps): boolean {\n const map = this._map;\n let changed = false;\n for (const propName of settingNames) {\n if (propName in nextProps && !deepEqual(nextProps[propName], currProps[propName])) {\n changed = true;\n const setter = map[`set${propName[0].toUpperCase()}${propName.slice(1)}`];\n setter?.call(map, nextProps[propName]);\n }\n }\n return changed;\n }\n\n /* Update map style to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if style is changed\n */\n _updateStyle(nextProps: MapboxProps, currProps: MapboxProps): boolean {\n if (nextProps.cursor !== currProps.cursor) {\n this._map.getCanvas().style.cursor = nextProps.cursor || '';\n }\n if (nextProps.mapStyle !== currProps.mapStyle) {\n const {mapStyle = DEFAULT_STYLE, styleDiffing = true} = nextProps;\n const options: any = {\n diff: styleDiffing\n };\n if ('localIdeographFontFamily' in nextProps) {\n // @ts-ignore Mapbox specific prop\n options.localIdeographFontFamily = nextProps.localIdeographFontFamily;\n }\n this._map.setStyle(normalizeStyle(mapStyle), options);\n return true;\n }\n return false;\n }\n\n /* Update fog, light and terrain to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateStyleComponents(nextProps: MapboxProps, currProps: MapboxProps): boolean {\n const map = this._map;\n let changed = false;\n if (map.isStyleLoaded()) {\n if ('light' in nextProps && map.setLight && !deepEqual(nextProps.light, currProps.light)) {\n changed = true;\n map.setLight(nextProps.light);\n }\n if ('fog' in nextProps && map.setFog && !deepEqual(nextProps.fog, currProps.fog)) {\n changed = true;\n map.setFog(nextProps.fog);\n }\n if (\n 'terrain' in nextProps &&\n map.setTerrain &&\n !deepEqual(nextProps.terrain, currProps.terrain)\n ) {\n if (!nextProps.terrain || map.getSource(nextProps.terrain.source)) {\n changed = true;\n map.setTerrain(nextProps.terrain);\n }\n }\n }\n return changed;\n }\n\n /* Update interaction handlers to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateHandlers(nextProps: MapboxProps, currProps: MapboxProps): boolean {\n const map = this._map;\n let changed = false;\n for (const propName of handlerNames) {\n const newValue = nextProps[propName] ?? true;\n const oldValue = currProps[propName] ?? true;\n if (!deepEqual(newValue, oldValue)) {\n changed = true;\n if (newValue) {\n map[propName].enable(newValue);\n } else {\n map[propName].disable();\n }\n }\n }\n return changed;\n }\n\n _onEvent = (e: MapEvent) => {\n // @ts-ignore\n const cb = this.props[otherEvents[e.type]];\n if (cb) {\n cb(e);\n } else if (e.type === 'error') {\n console.error((e as ErrorEvent).error); // eslint-disable-line\n }\n };\n\n private _queryRenderedFeatures(point: Point) {\n const map = this._map;\n const tr = map.transform;\n const {interactiveLayerIds = []} = this.props;\n try {\n map.transform = this._renderTransform;\n return map.queryRenderedFeatures(point, {\n layers: interactiveLayerIds.filter(map.getLayer.bind(map))\n });\n } catch {\n // May fail if style is not loaded\n return [];\n } finally {\n map.transform = tr;\n }\n }\n\n _updateHover(e: MapMouseEvent) {\n const {props} = this;\n const shouldTrackHoveredFeatures =\n props.interactiveLayerIds && (props.onMouseMove || props.onMouseEnter || props.onMouseLeave);\n\n if (shouldTrackHoveredFeatures) {\n const eventType = e.type;\n const wasHovering = this._hoveredFeatures?.length > 0;\n const features = this._queryRenderedFeatures(e.point);\n const isHovering = features.length > 0;\n\n if (!isHovering && wasHovering) {\n e.type = 'mouseleave';\n this._onPointerEvent(e);\n }\n this._hoveredFeatures = features;\n if (isHovering && !wasHovering) {\n e.type = 'mouseenter';\n this._onPointerEvent(e);\n }\n e.type = eventType;\n } else {\n this._hoveredFeatures = null;\n }\n }\n\n _onPointerEvent = (e: MapMouseEvent | MapMouseEvent) => {\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n this._updateHover(e);\n }\n\n // @ts-ignore\n const cb = this.props[pointerEvents[e.type]];\n if (cb) {\n if (this.props.interactiveLayerIds && e.type !== 'mouseover' && e.type !== 'mouseout') {\n e.features = this._hoveredFeatures || this._queryRenderedFeatures(e.point);\n }\n cb(e);\n delete e.features;\n }\n };\n\n _onCameraEvent = (e: ViewStateChangeEvent) => {\n if (!this._internalUpdate) {\n // @ts-ignore\n const cb = this.props[cameraEvents[e.type]];\n if (cb) {\n cb(e);\n }\n }\n if (e.type in this._deferredEvents) {\n this._deferredEvents[e.type] = false;\n }\n };\n\n _fireEvent(baseFire: Function, event: string | MapEvent, properties?: object) {\n const map = this._map;\n const tr = map.transform;\n\n const eventType = typeof event === 'string' ? event : event.type;\n if (eventType === 'move') {\n this._updateViewState(this.props, false);\n }\n if (eventType in cameraEvents) {\n if (typeof event === 'object') {\n (event as unknown as ViewStateChangeEvent).viewState = transformToViewState(tr);\n }\n if (this._map.isMoving()) {\n // Replace map.transform with ours during the callbacks\n map.transform = this._renderTransform;\n baseFire.call(map, event, properties);\n map.transform = tr;\n\n return map;\n }\n }\n baseFire.call(map, event, properties);\n\n return map;\n }\n\n // All camera manipulations are complete, ready to repaint\n _onBeforeRepaint() {\n const map = this._map;\n\n // If there are camera changes driven by props, invoke camera events so that DOM controls are synced\n this._internalUpdate = true;\n for (const eventType in this._deferredEvents) {\n if (this._deferredEvents[eventType]) {\n map.fire(eventType);\n }\n }\n this._internalUpdate = false;\n\n const tr = this._map.transform;\n // Make sure camera matches the current props\n map.transform = this._renderTransform;\n\n this._onAfterRepaint = () => {\n // Mapbox transitions between non-mercator projection and mercator during render time\n // Copy it back to the other\n syncProjection(this._renderTransform, tr);\n // Restores camera state before render/load events are fired\n map.transform = tr;\n };\n }\n\n _onAfterRepaint: () => void;\n}\n\n/**\n * Access token can be provided via one of:\n * mapboxAccessToken prop\n * access_token query parameter\n * MapboxAccessToken environment variable\n * REACT_APP_MAPBOX_ACCESS_TOKEN environment variable\n * @returns access token\n */\nfunction getAccessTokenFromEnv(): string {\n let accessToken = null;\n\n /* global location, process */\n if (typeof location !== 'undefined') {\n const match = /access_token=([^&\\/]*)/.exec(location.search);\n accessToken = match && match[1];\n }\n\n // Note: This depends on bundler plugins (e.g. webpack) importing environment correctly\n try {\n accessToken = accessToken || process.env.MapboxAccessToken;\n } catch {\n // ignore\n }\n\n try {\n accessToken = accessToken || process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\n } catch {\n // ignore\n }\n\n return accessToken;\n}\n","import type {\n MapInstance,\n MapInstanceInternal,\n MapStyle,\n Callbacks,\n LngLatLike,\n PointLike\n} from '../types';\nimport type Mapbox from './mapbox';\n\n/** These methods may break the react binding if called directly */\nconst skipMethods = [\n 'setMaxBounds',\n 'setMinZoom',\n 'setMaxZoom',\n 'setMinPitch',\n 'setMaxPitch',\n 'setRenderWorldCopies',\n 'setProjection',\n 'setStyle',\n 'addSource',\n 'removeSource',\n 'addLayer',\n 'removeLayer',\n 'setLayerZoomRange',\n 'setFilter',\n 'setPaintProperty',\n 'setLayoutProperty',\n 'setLight',\n 'setTerrain',\n 'setFog',\n 'remove'\n] as const;\n\nexport type MapRef = {\n getMap(): MapT;\n} & Omit;\n\nexport default function createRef<\n StyleT extends MapStyle,\n CallbacksT extends Callbacks,\n MapT extends MapInstance\n>(mapInstance: Mapbox): MapRef | null {\n if (!mapInstance) {\n return null;\n }\n\n const map = mapInstance.map as MapInstanceInternal;\n const result: any = {\n getMap: () => map,\n\n // Overwrite getters to use our shadow transform\n getCenter: () => mapInstance.transform.center,\n getZoom: () => mapInstance.transform.zoom,\n getBearing: () => mapInstance.transform.bearing,\n getPitch: () => mapInstance.transform.pitch,\n getPadding: () => mapInstance.transform.padding,\n getBounds: () => mapInstance.transform.getBounds(),\n project: (lnglat: LngLatLike) => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.project(lnglat);\n map.transform = tr;\n return result;\n },\n unproject: (point: PointLike) => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.unproject(point);\n map.transform = tr;\n return result;\n },\n // options diverge between mapbox and maplibre\n queryTerrainElevation: (lnglat: LngLatLike, options?: any) => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.queryTerrainElevation(lnglat, options);\n map.transform = tr;\n return result;\n },\n queryRenderedFeatures: (geometry?: any, options?: any) => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.queryRenderedFeatures(geometry, options);\n map.transform = tr;\n return result;\n }\n };\n\n for (const key of getMethodNames(map)) {\n // @ts-expect-error\n if (!(key in result) && !skipMethods.includes(key)) {\n result[key] = map[key].bind(map);\n }\n }\n\n return result;\n}\n\nfunction getMethodNames(obj: Object) {\n const result = new Set();\n\n let proto = obj;\n while (proto) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (\n key[0] !== '_' &&\n typeof obj[key] === 'function' &&\n key !== 'fire' &&\n key !== 'setEventedParent'\n ) {\n result.add(key);\n }\n }\n proto = Object.getPrototypeOf(proto);\n }\n return Array.from(result);\n}\n","// From https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts\n// useLayoutEffect but does not trigger warning in server-side rendering\nimport {useEffect, useLayoutEffect} from 'react';\n\nconst useIsomorphicLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport default useIsomorphicLayoutEffect;\n","export type GlobalSettings = {\n /** The map's default API URL for requesting tiles, styles, sprites, and glyphs. */\n baseApiUrl?: string;\n /** The maximum number of images (raster tiles, sprites, icons) to load in parallel.\n * @default 16\n */\n maxParallelImageRequests?: number;\n /** The map's RTL text plugin. Necessary for supporting the Arabic and Hebrew languages, which are written right-to-left. */\n RTLTextPlugin?: string | false;\n /** Provides an interface for external module bundlers such as Webpack or Rollup to package mapbox-gl's WebWorker into a separate class and integrate it with the library.\nTakes precedence over `workerUrl`. */\n workerClass?: any;\n /** The number of web workers instantiated on a page with mapbox-gl maps.\n * @default 2\n */\n workerCount?: number;\n /** Provides an interface for loading mapbox-gl's WebWorker bundle from a self-hosted URL.\n * This is useful if your site needs to operate in a strict CSP (Content Security Policy) environment\n * wherein you are not allowed to load JavaScript code from a Blob URL, which is default behavior. */\n workerUrl?: string;\n};\n\nconst globalSettings = [\n 'baseApiUrl',\n 'maxParallelImageRequests',\n 'workerClass',\n 'workerCount',\n 'workerUrl'\n] as const;\n\nexport default function setGlobals(mapLib: any, props: GlobalSettings) {\n for (const key of globalSettings) {\n if (key in props) {\n mapLib[key] = props[key];\n }\n }\n\n const {\n RTLTextPlugin = 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js'\n } = props;\n if (\n RTLTextPlugin &&\n mapLib.getRTLTextPluginStatus &&\n mapLib.getRTLTextPluginStatus() === 'unavailable'\n ) {\n mapLib.setRTLTextPlugin(\n RTLTextPlugin,\n (error?: Error) => {\n if (error) {\n // eslint-disable-next-line\n console.error(error);\n }\n },\n true\n );\n }\n}\n","import * as React from 'react';\nimport {useState, useRef, useEffect, useContext, useMemo, useImperativeHandle} from 'react';\n\nimport {MountedMapsContext} from './use-map';\nimport Mapbox, {MapboxProps} from '../mapbox/mapbox';\nimport createRef, {MapRef} from '../mapbox/create-ref';\n\nimport type {CSSProperties} from 'react';\nimport useIsomorphicLayoutEffect from '../utils/use-isomorphic-layout-effect';\nimport setGlobals, {GlobalSettings} from '../utils/set-globals';\nimport type {MapLib, MapInstance, MapStyle, Callbacks} from '../types';\n\nexport type MapContextValue = {\n mapLib: MapLib;\n map: MapRef;\n};\n\nexport const MapContext = React.createContext(null);\n\ntype MapInitOptions = Omit<\n MapOptions,\n 'style' | 'container' | 'bounds' | 'fitBoundsOptions' | 'center'\n>;\n\nexport type MapProps<\n MapOptions,\n StyleT extends MapStyle,\n CallbacksT extends Callbacks,\n MapT extends MapInstance\n> = MapInitOptions &\n MapboxProps &\n GlobalSettings & {\n mapLib?: MapLib | Promise>;\n reuseMaps?: boolean;\n /** Map container id */\n id?: string;\n /** Map container CSS style */\n style?: CSSProperties;\n children?: any;\n };\n\nexport default function Map<\n MapOptions,\n StyleT extends MapStyle,\n CallbacksT extends Callbacks,\n MapT extends MapInstance\n>(\n props: MapProps,\n ref: React.Ref>,\n defaultLib: MapLib | Promise>\n) {\n const mountedMapsContext = useContext(MountedMapsContext);\n const [mapInstance, setMapInstance] = useState>(null);\n const containerRef = useRef();\n\n const {current: contextValue} = useRef>({mapLib: null, map: null});\n\n useEffect(() => {\n const mapLib = props.mapLib;\n let isMounted = true;\n let mapbox: Mapbox;\n\n Promise.resolve(mapLib || defaultLib)\n .then((module: MapLib | {default: MapLib}) => {\n if (!isMounted) {\n return;\n }\n if (!module) {\n throw new Error('Invalid mapLib');\n }\n const mapboxgl = 'Map' in module ? module : module.default;\n if (!mapboxgl.Map) {\n throw new Error('Invalid mapLib');\n }\n\n // workerUrl & workerClass may change the result of supported()\n // https://github.com/visgl/react-map-gl/discussions/2027\n setGlobals(mapboxgl, props);\n if (!mapboxgl.supported || mapboxgl.supported(props)) {\n if (props.reuseMaps) {\n mapbox = Mapbox.reuse(props, containerRef.current);\n }\n if (!mapbox) {\n mapbox = new Mapbox(mapboxgl.Map, props, containerRef.current);\n }\n contextValue.map = createRef(mapbox);\n contextValue.mapLib = mapboxgl;\n\n setMapInstance(mapbox);\n mountedMapsContext?.onMapMount(contextValue.map, props.id);\n } else {\n throw new Error('Map is not supported by this browser');\n }\n })\n .catch(error => {\n const {onError} = props;\n if (onError) {\n onError({\n type: 'error',\n target: null,\n originalEvent: null,\n error\n });\n } else {\n console.error(error); // eslint-disable-line\n }\n });\n\n return () => {\n isMounted = false;\n if (mapbox) {\n mountedMapsContext?.onMapUnmount(props.id);\n if (props.reuseMaps) {\n mapbox.recycle();\n } else {\n mapbox.destroy();\n }\n }\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mapInstance) {\n mapInstance.setProps(props);\n }\n });\n\n useImperativeHandle(ref, () => contextValue.map, [mapInstance]);\n\n const style: CSSProperties = useMemo(\n () => ({\n position: 'relative',\n width: '100%',\n height: '100%',\n ...props.style\n }),\n [props.style]\n );\n\n const CHILD_CONTAINER_STYLE = {\n height: '100%'\n };\n\n return (\n
\n {mapInstance && (\n \n
\n {props.children}\n
\n
\n )}\n
\n );\n}\n","import * as React from 'react';\n// This is a simplified version of\n// https://github.com/facebook/react/blob/4131af3e4bf52f3a003537ec95a1655147c81270/src/renderers/dom/shared/CSSPropertyOperations.js#L62\nconst unitlessNumber = /box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;\n\nexport function applyReactStyle(element: HTMLElement, styles: React.CSSProperties) {\n if (!element || !styles) {\n return;\n }\n const style = element.style;\n\n for (const key in styles) {\n const value = styles[key];\n if (Number.isFinite(value) && !unitlessNumber.test(key)) {\n style[key] = `${value}px`;\n } else {\n style[key] = value;\n }\n }\n}\n","/* global document */\nimport * as React from 'react';\nimport {createPortal} from 'react-dom';\nimport {useImperativeHandle, useEffect, useMemo, useRef, useContext, forwardRef, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\n\nimport type {MarkerEvent, MarkerDragEvent, PointLike, MarkerInstance} from '../types';\n\nimport {MapContext} from './map';\nimport {arePointsEqual} from '../utils/deep-equal';\n\nexport type MarkerProps = OptionsT & {\n /** Longitude of the anchor location */\n longitude: number;\n /** Latitude of the anchor location */\n latitude: number;\n\n // These types will be further constraint by OptionsT\n draggable?: boolean;\n offset?: PointLike;\n pitchAlignment?: string;\n rotation?: number;\n rotationAlignment?: string;\n popup?: any;\n\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n onClick?: (e: MarkerEvent) => void;\n onDragStart?: (e: MarkerDragEvent) => void;\n onDrag?: (e: MarkerDragEvent) => void;\n onDragEnd?: (e: MarkerDragEvent) => void;\n children?: React.ReactNode;\n};\n\n/* eslint-disable complexity,max-statements */\nfunction Marker(\n props: MarkerProps,\n ref: React.Ref\n) {\n const {map, mapLib} = useContext(MapContext);\n const thisRef = useRef({props});\n thisRef.current.props = props;\n\n const marker: MarkerT = useMemo(() => {\n let hasChildren = false;\n React.Children.forEach(props.children, el => {\n if (el) {\n hasChildren = true;\n }\n });\n const options = {\n ...props,\n element: hasChildren ? document.createElement('div') : null\n };\n\n const mk = new mapLib.Marker(options) as MarkerT;\n mk.setLngLat([props.longitude, props.latitude]);\n\n mk.getElement().addEventListener('click', (e: MouseEvent) => {\n thisRef.current.props.onClick?.({\n type: 'click',\n target: mk,\n originalEvent: e\n });\n });\n\n mk.on('dragstart', e => {\n const evt = e as MarkerDragEvent;\n evt.lngLat = marker.getLngLat();\n thisRef.current.props.onDragStart?.(evt);\n });\n mk.on('drag', e => {\n const evt = e as MarkerDragEvent;\n evt.lngLat = marker.getLngLat();\n thisRef.current.props.onDrag?.(evt);\n });\n mk.on('dragend', e => {\n const evt = e as MarkerDragEvent;\n evt.lngLat = marker.getLngLat();\n thisRef.current.props.onDragEnd?.(evt);\n });\n\n return mk;\n }, []);\n\n useEffect(() => {\n marker.addTo(map.getMap());\n\n return () => {\n marker.remove();\n };\n }, []);\n\n const {\n longitude,\n latitude,\n offset,\n style,\n draggable = false,\n popup = null,\n rotation = 0,\n rotationAlignment = 'auto',\n pitchAlignment = 'auto'\n } = props;\n\n useEffect(() => {\n applyReactStyle(marker.getElement(), style);\n }, [style]);\n\n useImperativeHandle(ref, () => marker, []);\n\n if (marker.getLngLat().lng !== longitude || marker.getLngLat().lat !== latitude) {\n marker.setLngLat([longitude, latitude]);\n }\n if (offset && !arePointsEqual(marker.getOffset(), offset)) {\n marker.setOffset(offset);\n }\n if (marker.isDraggable() !== draggable) {\n marker.setDraggable(draggable);\n }\n if (marker.getRotation() !== rotation) {\n marker.setRotation(rotation);\n }\n if (marker.getRotationAlignment() !== rotationAlignment) {\n marker.setRotationAlignment(rotationAlignment);\n }\n if (marker.getPitchAlignment() !== pitchAlignment) {\n marker.setPitchAlignment(pitchAlignment);\n }\n if (marker.getPopup() !== popup) {\n marker.setPopup(popup);\n }\n\n return createPortal(props.children, marker.getElement());\n}\n\nexport default memo(forwardRef(Marker));\n","/* global document */\nimport * as React from 'react';\nimport {createPortal} from 'react-dom';\nimport {useImperativeHandle, useEffect, useMemo, useRef, useContext, forwardRef, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\n\nimport type {PopupEvent, PopupInstance} from '../types';\n\nimport {MapContext} from './map';\nimport {deepEqual} from '../utils/deep-equal';\n\nexport type PopupProps = OptionsT & {\n /** Longitude of the anchor location */\n longitude: number;\n /** Latitude of the anchor location */\n latitude: number;\n\n // These types will be further constraint by OptionsT\n anchor?: string;\n offset?: any;\n className?: string;\n maxWidth?: string;\n\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n\n onOpen?: (e: PopupEvent) => void;\n onClose?: (e: PopupEvent) => void;\n children?: React.ReactNode;\n};\n\n// Adapted from https://github.com/mapbox/mapbox-gl-js/blob/v1.13.0/src/ui/popup.js\nfunction getClassList(className: string) {\n return new Set(className ? className.trim().split(/\\s+/) : []);\n}\n\n/* eslint-disable complexity,max-statements */\nfunction Popup(\n props: PopupProps,\n ref: React.Ref\n) {\n const {map, mapLib} = useContext(MapContext);\n const container = useMemo(() => {\n return document.createElement('div');\n }, []);\n const thisRef = useRef({props});\n thisRef.current.props = props;\n\n const popup: PopupT = useMemo(() => {\n const options = {...props};\n const pp = new mapLib.Popup(options) as PopupT;\n pp.setLngLat([props.longitude, props.latitude]);\n pp.once('open', e => {\n thisRef.current.props.onOpen?.(e as PopupEvent);\n });\n return pp;\n }, []);\n\n useEffect(() => {\n const onClose = e => {\n thisRef.current.props.onClose?.(e as PopupEvent);\n };\n popup.on('close', onClose);\n popup.setDOMContent(container).addTo(map.getMap());\n\n return () => {\n // https://github.com/visgl/react-map-gl/issues/1825\n // onClose should not be fired if the popup is removed by unmounting\n // When using React strict mode, the component is mounted twice.\n // Firing the onClose callback here would be a false signal to remove the component.\n popup.off('close', onClose);\n if (popup.isOpen()) {\n popup.remove();\n }\n };\n }, []);\n\n useEffect(() => {\n applyReactStyle(popup.getElement(), props.style);\n }, [props.style]);\n\n useImperativeHandle(ref, () => popup, []);\n\n if (popup.isOpen()) {\n if (popup.getLngLat().lng !== props.longitude || popup.getLngLat().lat !== props.latitude) {\n popup.setLngLat([props.longitude, props.latitude]);\n }\n if (props.offset && !deepEqual(popup.options.offset, props.offset)) {\n popup.setOffset(props.offset);\n }\n if (popup.options.anchor !== props.anchor || popup.options.maxWidth !== props.maxWidth) {\n popup.options.anchor = props.anchor;\n popup.setMaxWidth(props.maxWidth);\n }\n if (popup.options.className !== props.className) {\n const prevClassList = getClassList(popup.options.className);\n const nextClassList = getClassList(props.className);\n\n for (const c of prevClassList) {\n if (!nextClassList.has(c)) {\n popup.removeClassName(c);\n }\n }\n for (const c of nextClassList) {\n if (!prevClassList.has(c)) {\n popup.addClassName(c);\n }\n }\n popup.options.className = props.className;\n }\n }\n\n return createPortal(props.children, container);\n}\n\nexport default memo(forwardRef(Popup));\n","import {useContext, useMemo, useEffect} from 'react';\nimport type {IControl, ControlPosition} from '../types';\nimport {MapContext} from './map';\nimport type {MapContextValue} from './map';\n\ntype ControlOptions = {\n position?: ControlPosition;\n};\n\nfunction useControl(\n onCreate: (context: MapContextValue) => T,\n opts?: ControlOptions\n): T;\n\nfunction useControl(\n onCreate: (context: MapContextValue) => T,\n onRemove: (context: MapContextValue) => void,\n opts?: ControlOptions\n): T;\n\nfunction useControl(\n onCreate: (context: MapContextValue) => T,\n onAdd: (context: MapContextValue) => void,\n onRemove: (context: MapContextValue) => void,\n opts?: ControlOptions\n): T;\n\nfunction useControl(\n onCreate: (context: MapContextValue) => T,\n arg1?: ((context: MapContextValue) => void) | ControlOptions,\n arg2?: ((context: MapContextValue) => void) | ControlOptions,\n arg3?: ControlOptions\n): T {\n const context = useContext(MapContext);\n const ctrl = useMemo(() => onCreate(context), []);\n\n useEffect(() => {\n const opts = (arg3 || arg2 || arg1) as ControlOptions;\n const onAdd = typeof arg1 === 'function' && typeof arg2 === 'function' ? arg1 : null;\n const onRemove = typeof arg2 === 'function' ? arg2 : typeof arg1 === 'function' ? arg1 : null;\n\n const {map} = context;\n if (!map.hasControl(ctrl)) {\n map.addControl(ctrl, opts?.position);\n if (onAdd) {\n onAdd(context);\n }\n }\n\n return () => {\n if (onRemove) {\n onRemove(context);\n }\n // Map might have been removed (parent effects are destroyed before child ones)\n if (map.hasControl(ctrl)) {\n map.removeControl(ctrl);\n }\n };\n }, []);\n\n return ctrl;\n}\n\nexport default useControl;\n","import * as React from 'react';\nimport {useEffect, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nimport type {ControlPosition, AttributionControlInstance} from '../types';\n\nexport type AttributionControlProps = OptionsT & {\n /** Placement of the control relative to the map. */\n position?: ControlPosition;\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n};\n\nfunction AttributionControl(\n props: AttributionControlProps\n): null {\n const ctrl = useControl(\n ({mapLib}) => new mapLib.AttributionControl(props) as ControlT,\n {\n position: props.position\n }\n );\n\n useEffect(() => {\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n\n return null;\n}\n\nexport default memo(AttributionControl);\n","/* global document */\nimport * as React from 'react';\nimport {useEffect, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nimport type {ControlPosition, FullscreenControlInstance} from '../types';\n\nexport type FullscreenControlProps = Omit & {\n /** Id of the DOM element which should be made full screen. By default, the map container\n * element will be made full screen. */\n containerId?: string;\n /** Placement of the control relative to the map. */\n position?: ControlPosition;\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n};\n\nfunction FullscreenControl(\n props: FullscreenControlProps\n): null {\n const ctrl = useControl(\n ({mapLib}) =>\n new mapLib.FullscreenControl({\n container: props.containerId && document.getElementById(props.containerId)\n }) as ControlT,\n {position: props.position}\n );\n\n useEffect(() => {\n applyReactStyle(ctrl._controlContainer, props.style);\n }, [props.style]);\n\n return null;\n}\n\nexport default memo(FullscreenControl);\n","import * as React from 'react';\nimport {useImperativeHandle, useRef, useEffect, forwardRef, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nimport type {\n ControlPosition,\n GeolocateControlInstance,\n GeolocateEvent,\n GeolocateResultEvent,\n GeolocateErrorEvent\n} from '../types';\n\nexport type GeolocateControlProps<\n OptionsT,\n ControlT extends GeolocateControlInstance\n> = OptionsT & {\n /** Placement of the control relative to the map. */\n position?: ControlPosition;\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n\n /** Called on each Geolocation API position update that returned as success. */\n onGeolocate?: (e: GeolocateResultEvent) => void;\n /** Called on each Geolocation API position update that returned as an error. */\n onError?: (e: GeolocateErrorEvent) => void;\n /** Called on each Geolocation API position update that returned as success but user position\n * is out of map `maxBounds`. */\n onOutOfMaxBounds?: (e: GeolocateResultEvent) => void;\n /** Called when the GeolocateControl changes to the active lock state. */\n onTrackUserLocationStart?: (e: GeolocateEvent) => void;\n /** Called when the GeolocateControl changes to the background state. */\n onTrackUserLocationEnd?: (e: GeolocateEvent) => void;\n};\n\nfunction GeolocateControl(\n props: GeolocateControlProps,\n ref: React.Ref\n) {\n const thisRef = useRef({props});\n\n const ctrl = useControl(\n ({mapLib}) => {\n const gc = new mapLib.GeolocateControl(props) as ControlT;\n\n // Hack: fix GeolocateControl reuse\n // When using React strict mode, the component is mounted twice.\n // GeolocateControl's UI creation is asynchronous. Removing and adding it back causes the UI to be initialized twice.\n // @ts-expect-error private method\n const setupUI = gc._setupUI;\n // @ts-expect-error private method\n gc._setupUI = args => {\n if (!gc._container.hasChildNodes()) {\n setupUI(args);\n }\n };\n\n gc.on('geolocate', e => {\n thisRef.current.props.onGeolocate?.(e as GeolocateResultEvent);\n });\n gc.on('error', e => {\n thisRef.current.props.onError?.(e as GeolocateErrorEvent);\n });\n gc.on('outofmaxbounds', e => {\n thisRef.current.props.onOutOfMaxBounds?.(e as GeolocateResultEvent);\n });\n gc.on('trackuserlocationstart', e => {\n thisRef.current.props.onTrackUserLocationStart?.(e as GeolocateEvent);\n });\n gc.on('trackuserlocationend', e => {\n thisRef.current.props.onTrackUserLocationEnd?.(e as GeolocateEvent);\n });\n\n return gc;\n },\n {position: props.position}\n );\n\n thisRef.current.props = props;\n\n useImperativeHandle(ref, () => ctrl, []);\n\n useEffect(() => {\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n\n return null;\n}\n\nexport default memo(forwardRef(GeolocateControl));\n","import * as React from 'react';\nimport {useEffect, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nimport type {ControlPosition, NavigationControlInstance} from '../types';\n\nexport type NavigationControlProps = OptionsT & {\n /** Placement of the control relative to the map. */\n position?: ControlPosition;\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n};\n\nfunction NavigationControl(\n props: NavigationControlProps\n): null {\n const ctrl = useControl(({mapLib}) => new mapLib.NavigationControl(props) as ControlT, {\n position: props.position\n });\n\n useEffect(() => {\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n\n return null;\n}\n\nexport default memo(NavigationControl);\n","import * as React from 'react';\nimport {useEffect, useRef, memo} from 'react';\nimport {applyReactStyle} from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nimport type {ControlPosition, ScaleControlInstance} from '../types';\n\nexport type ScaleControlProps = OptionsT & {\n // These props will be further constraint by OptionsT\n unit?: string;\n maxWidth?: number;\n\n /** Placement of the control relative to the map. */\n position?: ControlPosition;\n /** CSS style override, applied to the control's container */\n style?: React.CSSProperties;\n};\n\nfunction ScaleControl(\n props: ScaleControlProps\n): null {\n const ctrl = useControl(({mapLib}) => new mapLib.ScaleControl(props) as ControlT, {\n position: props.position\n });\n const propsRef = useRef>(props);\n\n const prevProps = propsRef.current;\n propsRef.current = props;\n\n const {style} = props;\n\n if (props.maxWidth !== undefined && props.maxWidth !== prevProps.maxWidth) {\n ctrl.options.maxWidth = props.maxWidth;\n }\n if (props.unit !== undefined && props.unit !== prevProps.unit) {\n ctrl.setUnit(props.unit);\n }\n\n useEffect(() => {\n applyReactStyle(ctrl._container, style);\n }, [style]);\n\n return null;\n}\n\nexport default memo(ScaleControl);\n","export default function assert(condition: any, message: string) {\n if (!condition) {\n throw new Error(message);\n }\n}\n","import {useContext, useEffect, useMemo, useState, useRef} from 'react';\nimport {MapContext} from './map';\nimport assert from '../utils/assert';\nimport {deepEqual} from '../utils/deep-equal';\n\nimport type {MapInstance, CustomLayerInterface, ILayer} from '../types';\n\n// Omiting property from a union type, see\n// https://github.com/microsoft/TypeScript/issues/39556#issuecomment-656925230\ntype OptionalId = T extends {id: string} ? Omit & {id?: string} : T;\ntype OptionalSource = T extends {source: string} ? Omit & {source?: string} : T;\n\nexport type LayerProps = OptionalSource> & {\n /** If set, the layer will be inserted before the specified layer */\n beforeId?: string;\n};\n\n/* eslint-disable complexity, max-statements */\nfunction updateLayer(\n map: MapInstance,\n id: string,\n props: LayerProps,\n prevProps: LayerProps\n) {\n assert(props.id === prevProps.id, 'layer id changed');\n assert(props.type === prevProps.type, 'layer type changed');\n\n if (props.type === 'custom' || prevProps.type === 'custom') {\n return;\n }\n\n const {layout = {}, paint = {}, filter, minzoom, maxzoom, beforeId} = props;\n\n if (beforeId !== prevProps.beforeId) {\n map.moveLayer(id, beforeId);\n }\n if (layout !== prevProps.layout) {\n const prevLayout = prevProps.layout || {};\n for (const key in layout) {\n if (!deepEqual(layout[key], prevLayout[key])) {\n map.setLayoutProperty(id, key, layout[key]);\n }\n }\n for (const key in prevLayout) {\n if (!layout.hasOwnProperty(key)) {\n map.setLayoutProperty(id, key, undefined);\n }\n }\n }\n if (paint !== prevProps.paint) {\n const prevPaint = prevProps.paint || {};\n for (const key in paint) {\n if (!deepEqual(paint[key], prevPaint[key])) {\n map.setPaintProperty(id, key, paint[key]);\n }\n }\n for (const key in prevPaint) {\n if (!paint.hasOwnProperty(key)) {\n map.setPaintProperty(id, key, undefined);\n }\n }\n }\n\n if (!deepEqual(filter, prevProps.filter)) {\n map.setFilter(id, filter);\n }\n if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {\n map.setLayerZoomRange(id, minzoom, maxzoom);\n }\n}\n\nfunction createLayer(\n map: MapInstance,\n id: string,\n props: LayerProps\n) {\n // @ts-ignore\n if (map.style && map.style._loaded && (!('source' in props) || map.getSource(props.source))) {\n const options: LayerProps = {...props, id};\n delete options.beforeId;\n\n // @ts-ignore\n map.addLayer(options, props.beforeId);\n }\n}\n\n/* eslint-enable complexity, max-statements */\n\nlet layerCounter = 0;\n\nfunction Layer(props: LayerProps) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n\n const id = useMemo(() => props.id || `jsx-layer-${layerCounter++}`, []);\n\n useEffect(() => {\n if (map) {\n const forceUpdate = () => setStyleLoaded(version => version + 1);\n map.on('styledata', forceUpdate);\n forceUpdate();\n\n return () => {\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getLayer(id)) {\n map.removeLayer(id);\n }\n };\n }\n return undefined;\n }, [map]);\n\n // @ts-ignore\n const layer = map && map.style && map.getLayer(id);\n if (layer) {\n try {\n updateLayer(map, id, props, propsRef.current);\n } catch (error) {\n console.warn(error); // eslint-disable-line\n }\n } else {\n createLayer(map, id, props);\n }\n\n // Store last rendered props\n propsRef.current = props;\n\n return null;\n}\n\nexport default Layer;\n","import * as React from 'react';\nimport {useContext, useEffect, useMemo, useState, useRef} from 'react';\nimport {cloneElement} from 'react';\nimport {MapContext} from './map';\nimport assert from '../utils/assert';\nimport {deepEqual} from '../utils/deep-equal';\n\nimport type {\n MapInstance,\n ISource,\n CustomSource,\n GeoJSONSourceImplementation,\n ImageSourceImplemtation,\n AnySourceImplementation\n} from '../types';\nimport type {GeoJSONSourceRaw, ImageSourceRaw, VectorSourceRaw} from '../types/style-spec-maplibre';\n\nexport type SourceProps = (SourceT | CustomSource) & {\n id?: string;\n children?: any;\n};\n\nlet sourceCounter = 0;\n\nfunction createSource(\n map: MapInstance,\n id: string,\n props: SourceProps\n) {\n // @ts-ignore\n if (map.style && map.style._loaded) {\n const options = {...props};\n delete options.id;\n delete options.children;\n // @ts-ignore\n map.addSource(id, options);\n return map.getSource(id);\n }\n return null;\n}\n\n/* eslint-disable complexity */\nfunction updateSource(\n source: AnySourceImplementation,\n props: SourceProps,\n prevProps: SourceProps\n) {\n assert(props.id === prevProps.id, 'source id changed');\n assert(props.type === prevProps.type, 'source type changed');\n\n let changedKey = '';\n let changedKeyCount = 0;\n\n for (const key in props) {\n if (key !== 'children' && key !== 'id' && !deepEqual(prevProps[key], props[key])) {\n changedKey = key;\n changedKeyCount++;\n }\n }\n\n if (!changedKeyCount) {\n return;\n }\n\n const type = props.type;\n\n if (type === 'geojson') {\n (source as GeoJSONSourceImplementation).setData(\n (props as unknown as GeoJSONSourceRaw).data as any\n );\n } else if (type === 'image') {\n (source as ImageSourceImplemtation).updateImage({\n url: (props as unknown as ImageSourceRaw).url,\n coordinates: (props as unknown as ImageSourceRaw).coordinates\n });\n } else if ('setCoordinates' in source && changedKeyCount === 1 && changedKey === 'coordinates') {\n source.setCoordinates((props as ImageSourceRaw).coordinates);\n } else if ('setUrl' in source && changedKey === 'url') {\n source.setUrl((props as VectorSourceRaw).url);\n } else if ('setTiles' in source && changedKey === 'tiles') {\n source.setTiles((props as VectorSourceRaw).tiles);\n } else {\n // eslint-disable-next-line\n console.warn(`Unable to update prop: ${changedKey}`);\n }\n}\n/* eslint-enable complexity */\n\nfunction Source(props: SourceProps) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n\n const id = useMemo(() => props.id || `jsx-source-${sourceCounter++}`, []);\n\n useEffect(() => {\n if (map) {\n /* global setTimeout */\n const forceUpdate = () => setTimeout(() => setStyleLoaded(version => version + 1), 0);\n map.on('styledata', forceUpdate);\n forceUpdate();\n\n return () => {\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getSource(id)) {\n // Parent effects are destroyed before child ones, see\n // https://github.com/facebook/react/issues/16728\n // Source can only be removed after all child layers are removed\n const allLayers = map.getStyle()?.layers;\n if (allLayers) {\n for (const layer of allLayers) {\n // @ts-ignore (2339) source does not exist on all layer types\n if (layer.source === id) {\n map.removeLayer(layer.id);\n }\n }\n }\n map.removeSource(id);\n }\n };\n }\n return undefined;\n }, [map]);\n\n // @ts-ignore\n let source = map && map.style && map.getSource(id);\n if (source) {\n updateSource(source, props, propsRef.current);\n } else {\n source = createSource(map, id, props);\n }\n propsRef.current = props;\n\n return (\n (source &&\n React.Children.map(\n props.children,\n child =>\n child &&\n cloneElement(child, {\n source: id\n })\n )) ||\n null\n );\n}\n\nexport default Source;\n","import * as React from 'react';\nimport type {\n Map as MapboxMap,\n MapboxOptions,\n Marker as MapboxMarker,\n MarkerOptions,\n Popup as MapboxPopup,\n PopupOptions,\n AttributionControl as MapboxAttributionControl,\n FullscreenControl as MapboxFullscreenControl,\n GeolocateControl as MapboxGeolocateControl,\n NavigationControl as MapboxNavigationControl,\n ScaleControl as MapboxScaleControl\n} from 'mapbox-gl';\nimport {MapStyle, AnyLayer, AnySource} from './types/style-spec-mapbox';\n\nimport {default as _Map, MapProps as _MapProps} from './components/map';\nimport {default as _Marker, MarkerProps as _MarkerProps} from './components/marker';\nimport {default as _Popup, PopupProps as _PopupProps} from './components/popup';\nimport {\n default as _AttributionControl,\n AttributionControlProps as _AttributionControlProps\n} from './components/attribution-control';\nimport {\n default as _FullscreenControl,\n FullscreenControlProps as _FullscreenControlProps\n} from './components/fullscreen-control';\nimport {\n default as _GeolocateControl,\n GeolocateControlProps as _GeolocateControlProps\n} from './components/geolocate-control';\nimport {\n default as _NavigationControl,\n NavigationControlProps as _NavigationControlProps\n} from './components/navigation-control';\nimport {\n default as _ScaleControl,\n ScaleControlProps as _ScaleControlProps\n} from './components/scale-control';\nimport {default as _Layer, LayerProps as _LayerProps} from './components/layer';\nimport {default as _Source, SourceProps as _SourceProps} from './components/source';\nimport {useMap as _useMap} from './components/use-map';\nimport type {MapRef as _MapRef} from './mapbox/create-ref';\nimport type * as events from './types/events';\nimport type {MapCallbacks} from './types/events-mapbox';\n\nexport function useMap() {\n return _useMap();\n}\n\nexport type MapProps = _MapProps;\nexport type MapRef = _MapRef;\nconst mapLib = import('mapbox-gl');\nexport const Map = (() => {\n return React.forwardRef(function Map(props: MapProps, ref: React.Ref) {\n return _Map(props, ref, mapLib);\n });\n})();\n\nexport type MarkerProps = _MarkerProps;\nexport const Marker = _Marker as (\n props: MarkerProps & React.RefAttributes\n) => React.ReactElement | null;\n\nexport type PopupProps = _PopupProps;\nexport const Popup = _Popup as (\n props: PopupProps & React.RefAttributes\n) => React.ReactElement | null;\n\ntype AttributionControlOptions = ConstructorParameters[0];\nexport type AttributionControlProps = _AttributionControlProps;\nexport const AttributionControl = _AttributionControl as (\n props: AttributionControlProps\n) => React.ReactElement | null;\n\ntype FullscreenControlOptions = ConstructorParameters[0];\nexport type FullscreenControlProps = _FullscreenControlProps;\nexport const FullscreenControl = _FullscreenControl as (\n props: FullscreenControlProps\n) => React.ReactElement | null;\n\ntype NavigationControlOptions = ConstructorParameters[0];\nexport type NavigationControlProps = _NavigationControlProps;\nexport const NavigationControl = _NavigationControl as (\n props: NavigationControlProps\n) => React.ReactElement | null;\n\ntype GeolocateControlOptions = ConstructorParameters[0];\nexport type GeolocateControlProps = _GeolocateControlProps<\n GeolocateControlOptions,\n MapboxGeolocateControl\n>;\nexport const GeolocateControl = _GeolocateControl as (\n props: GeolocateControlProps & React.RefAttributes\n) => React.ReactElement | null;\n\ntype ScaleControlOptions = ConstructorParameters[0];\nexport type ScaleControlProps = _ScaleControlProps;\nexport const ScaleControl = _ScaleControl as (\n props: ScaleControlProps\n) => React.ReactElement | null;\n\nexport type LayerProps = _LayerProps;\nexport const Layer = _Layer as (props: LayerProps) => React.ReactElement | null;\n\nexport type SourceProps = _SourceProps;\nexport const Source = _Source as (props: SourceProps) => React.ReactElement | null;\n\nexport {default as useControl} from './components/use-control';\nexport {MapProvider} from './components/use-map';\n\nexport default Map;\n\n// Types\nexport * from './types/public';\nexport type {\n Point,\n PointLike,\n LngLat,\n LngLatLike,\n LngLatBounds,\n LngLatBoundsLike,\n PaddingOptions,\n MapboxGeoJSONFeature as MapGeoJSONFeature,\n GeoJSONSource,\n VideoSource,\n ImageSource,\n CanvasSource,\n VectorSourceImpl as VectorTileSource\n} from 'mapbox-gl';\nexport * from './types/style-spec-mapbox';\n\n// Events\nexport type {\n MapEvent,\n MapMouseEvent,\n MapLayerMouseEvent,\n MapTouchEvent,\n MapLayerTouchEvent,\n MapStyleDataEvent,\n MapSourceDataEvent,\n MapWheelEvent,\n MapBoxZoomEvent,\n ErrorEvent,\n ViewStateChangeEvent\n} from './types/events-mapbox';\nexport type PopupEvent = events.PopupEvent;\nexport type MarkerEvent = events.MarkerEvent;\nexport type MarkerDragEvent = events.MarkerDragEvent;\nexport type GeolocateEvent = events.GeolocateEvent;\nexport type GeolocateResultEvent = events.GeolocateResultEvent;\nexport type GeolocateErrorEvent = events.GeolocateErrorEvent;\n\n// v7.0 backward compatibility\n\n/** @deprecated use `MapStyle` */\nexport type MapboxStyle = MapStyle;\n\nexport type {Map as MapboxMap, MapboxEvent, MapboxGeoJSONFeature} from 'mapbox-gl';\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import { feature, point, lineString, isObject } from \"@turf/helpers\";\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink =\n excludeWrapCoord &&\n (geomType === \"Polygon\" || geomType === \"MultiPolygon\")\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(geometry.geometries[j], callback, excludeWrapCoord) ===\n false\n )\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (\n callback(\n feature(geometry, properties, { bbox: bbox, id: id }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(feature(geom, properties), featureIndex, multiFeatureIndex) ===\n false\n )\n return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function (currentFeature, featureIndex, multiFeatureIndex) {\n if (\n featureIndex === 0 &&\n multiFeatureIndex === 0 &&\n initialValue === undefined\n )\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false && initialValue === undefined)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error(\"geojson is required\");\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (\n var geometryIndex = 0;\n geometryIndex < coords.length;\n geometryIndex++\n ) {\n if (\n callback(\n lineString(coords[geometryIndex], feature.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex =\n coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex =\n coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\nexport {\n coordReduce,\n coordEach,\n propEach,\n propReduce,\n featureReduce,\n featureEach,\n coordAll,\n geomReduce,\n geomEach,\n flattenReduce,\n flattenEach,\n segmentReduce,\n segmentEach,\n lineReduce,\n lineEach,\n findSegment,\n findPoint,\n};\n","import { BBox } from \"geojson\";\nimport { AllGeoJSON } from \"@turf/helpers\";\nimport { coordEach } from \"@turf/meta\";\n\n/**\n * Calculates the bounding box for any GeoJSON object, including FeatureCollection.\n * Uses geojson.bbox if available and options.recompute is not set.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.recompute] Whether to ignore an existing bbox property on geojson\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(\n geojson: AllGeoJSON,\n options: {\n recompute?: boolean;\n } = {}\n): BBox {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result: BBox = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\n\nexport { bbox };\nexport default bbox;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { resolveElements } from '../../utils/resolve-elements.es.js';\n\nconst resizeHandlers = new WeakMap();\nlet observer;\nfunction getElementSize(target, borderBoxSize) {\n if (borderBoxSize) {\n const { inlineSize, blockSize } = borderBoxSize[0];\n return { width: inlineSize, height: blockSize };\n }\n else if (target instanceof SVGElement && \"getBBox\" in target) {\n return target.getBBox();\n }\n else {\n return {\n width: target.offsetWidth,\n height: target.offsetHeight,\n };\n }\n}\nfunction notifyTarget({ target, contentRect, borderBoxSize, }) {\n var _a;\n (_a = resizeHandlers.get(target)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => {\n handler({\n target,\n contentSize: contentRect,\n get size() {\n return getElementSize(target, borderBoxSize);\n },\n });\n });\n}\nfunction notifyAll(entries) {\n entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n if (typeof ResizeObserver === \"undefined\")\n return;\n observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n if (!observer)\n createResizeObserver();\n const elements = resolveElements(target);\n elements.forEach((element) => {\n let elementHandlers = resizeHandlers.get(element);\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(element, elementHandlers);\n }\n elementHandlers.add(handler);\n observer === null || observer === void 0 ? void 0 : observer.observe(element);\n });\n return () => {\n elements.forEach((element) => {\n const elementHandlers = resizeHandlers.get(element);\n elementHandlers === null || elementHandlers === void 0 ? void 0 : elementHandlers.delete(handler);\n if (!(elementHandlers === null || elementHandlers === void 0 ? void 0 : elementHandlers.size)) {\n observer === null || observer === void 0 ? void 0 : observer.unobserve(element);\n }\n });\n };\n}\n\nexport { resizeElement };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","const windowCallbacks = new Set();\nlet windowResizeHandler;\nfunction createWindowResizeHandler() {\n windowResizeHandler = () => {\n const size = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n const info = {\n target: window,\n size,\n contentSize: size,\n };\n windowCallbacks.forEach((callback) => callback(info));\n };\n window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n windowCallbacks.add(callback);\n if (!windowResizeHandler)\n createWindowResizeHandler();\n return () => {\n windowCallbacks.delete(callback);\n if (!windowCallbacks.size && windowResizeHandler) {\n windowResizeHandler = undefined;\n }\n };\n}\n\nexport { resizeWindow };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","import { resizeElement } from './handle-element.es.js';\nimport { resizeWindow } from './handle-window.es.js';\nimport { isFunction } from '@motionone/utils';\n\nfunction resize(a, b) {\n return isFunction(a) ? resizeWindow(a) : resizeElement(a, b);\n}\n\nexport { resize };\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","import { progress, velocityPerSecond } from '@motionone/utils';\n\n/**\n * A time in milliseconds, beyond which we consider the scroll velocity to be 0.\n */\nconst maxElapsed = 50;\nconst createAxisInfo = () => ({\n current: 0,\n offset: [],\n progress: 0,\n scrollLength: 0,\n targetOffset: 0,\n targetLength: 0,\n containerLength: 0,\n velocity: 0,\n});\nconst createScrollInfo = () => ({\n time: 0,\n x: createAxisInfo(),\n y: createAxisInfo(),\n});\nconst keys = {\n x: {\n length: \"Width\",\n position: \"Left\",\n },\n y: {\n length: \"Height\",\n position: \"Top\",\n },\n};\nfunction updateAxisInfo(element, axisName, info, time) {\n const axis = info[axisName];\n const { length, position } = keys[axisName];\n const prev = axis.current;\n const prevTime = info.time;\n axis.current = element[\"scroll\" + position];\n axis.scrollLength = element[\"scroll\" + length] - element[\"client\" + length];\n axis.offset.length = 0;\n axis.offset[0] = 0;\n axis.offset[1] = axis.scrollLength;\n axis.progress = progress(0, axis.scrollLength, axis.current);\n const elapsed = time - prevTime;\n axis.velocity =\n elapsed > maxElapsed ? 0 : velocityPerSecond(axis.current - prev, elapsed);\n}\nfunction updateScrollInfo(element, info, time) {\n updateAxisInfo(element, \"x\", info, time);\n updateAxisInfo(element, \"y\", info, time);\n info.time = time;\n}\n\nexport { createScrollInfo, updateScrollInfo };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing)\n ? easing[wrap(0, easing.length, i)]\n : easing;\n}\n\nexport { getEasingForSegment };\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const ScrollOffset = {\n Enter: [\n [0, 1],\n [1, 1],\n ],\n Exit: [\n [0, 0],\n [1, 0],\n ],\n Any: [\n [1, 0],\n [0, 1],\n ],\n All: [\n [0, 0],\n [1, 1],\n ],\n};\n\nexport { ScrollOffset };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","import { isString, isNumber } from '@motionone/utils';\n\nconst namedEdges = {\n start: 0,\n center: 0.5,\n end: 1,\n};\nfunction resolveEdge(edge, length, inset = 0) {\n let delta = 0;\n /**\n * If we have this edge defined as a preset, replace the definition\n * with the numerical value.\n */\n if (namedEdges[edge] !== undefined) {\n edge = namedEdges[edge];\n }\n /**\n * Handle unit values\n */\n if (isString(edge)) {\n const asNumber = parseFloat(edge);\n if (edge.endsWith(\"px\")) {\n delta = asNumber;\n }\n else if (edge.endsWith(\"%\")) {\n edge = asNumber / 100;\n }\n else if (edge.endsWith(\"vw\")) {\n delta = (asNumber / 100) * document.documentElement.clientWidth;\n }\n else if (edge.endsWith(\"vh\")) {\n delta = (asNumber / 100) * document.documentElement.clientHeight;\n }\n else {\n edge = asNumber;\n }\n }\n /**\n * If the edge is defined as a number, handle as a progress value.\n */\n if (isNumber(edge)) {\n delta = length * edge;\n }\n return inset + delta;\n}\n\nexport { namedEdges, resolveEdge };\n","import { isNumber, isString } from '@motionone/utils';\nimport { resolveEdge, namedEdges } from './edge.es.js';\n\nconst defaultOffset = [0, 0];\nfunction resolveOffset(offset, containerLength, targetLength, targetInset) {\n let offsetDefinition = Array.isArray(offset) ? offset : defaultOffset;\n let targetPoint = 0;\n let containerPoint = 0;\n if (isNumber(offset)) {\n /**\n * If we're provided offset: [0, 0.5, 1] then each number x should become\n * [x, x], so we default to the behaviour of mapping 0 => 0 of both target\n * and container etc.\n */\n offsetDefinition = [offset, offset];\n }\n else if (isString(offset)) {\n offset = offset.trim();\n if (offset.includes(\" \")) {\n offsetDefinition = offset.split(\" \");\n }\n else {\n /**\n * If we're provided a definition like \"100px\" then we want to apply\n * that only to the top of the target point, leaving the container at 0.\n * Whereas a named offset like \"end\" should be applied to both.\n */\n offsetDefinition = [offset, namedEdges[offset] ? offset : `0`];\n }\n }\n targetPoint = resolveEdge(offsetDefinition[0], targetLength, targetInset);\n containerPoint = resolveEdge(offsetDefinition[1], containerLength);\n return targetPoint - containerPoint;\n}\n\nexport { resolveOffset };\n","import { interpolate, defaultOffset } from '@motionone/utils';\nimport { calcInset } from './inset.es.js';\nimport { ScrollOffset } from './presets.es.js';\nimport { resolveOffset } from './offset.es.js';\n\nconst point = { x: 0, y: 0 };\nfunction resolveOffsets(container, info, options) {\n let { offset: offsetDefinition = ScrollOffset.All } = options;\n const { target = container, axis = \"y\" } = options;\n const lengthLabel = axis === \"y\" ? \"height\" : \"width\";\n const inset = target !== container ? calcInset(target, container) : point;\n /**\n * Measure the target and container. If they're the same thing then we\n * use the container's scrollWidth/Height as the target, from there\n * all other calculations can remain the same.\n */\n const targetSize = target === container\n ? { width: container.scrollWidth, height: container.scrollHeight }\n : { width: target.clientWidth, height: target.clientHeight };\n const containerSize = {\n width: container.clientWidth,\n height: container.clientHeight,\n };\n /**\n * Reset the length of the resolved offset array rather than creating a new one.\n * TODO: More reusable data structures for targetSize/containerSize would also be good.\n */\n info[axis].offset.length = 0;\n /**\n * Populate the offset array by resolving the user's offset definition into\n * a list of pixel scroll offets.\n */\n let hasChanged = !info[axis].interpolate;\n const numOffsets = offsetDefinition.length;\n for (let i = 0; i < numOffsets; i++) {\n const offset = resolveOffset(offsetDefinition[i], containerSize[lengthLabel], targetSize[lengthLabel], inset[axis]);\n if (!hasChanged && offset !== info[axis].interpolatorOffsets[i]) {\n hasChanged = true;\n }\n info[axis].offset[i] = offset;\n }\n /**\n * If the pixel scroll offsets have changed, create a new interpolator function\n * to map scroll value into a progress.\n */\n if (hasChanged) {\n info[axis].interpolate = interpolate(defaultOffset(numOffsets), info[axis].offset);\n info[axis].interpolatorOffsets = [...info[axis].offset];\n }\n info[axis].progress = info[axis].interpolate(info[axis].current);\n}\n\nexport { resolveOffsets };\n","function calcInset(element, container) {\n let inset = { x: 0, y: 0 };\n let current = element;\n while (current && current !== container) {\n if (current instanceof HTMLElement) {\n inset.x += current.offsetLeft;\n inset.y += current.offsetTop;\n current = current.offsetParent;\n }\n else if (current instanceof SVGGraphicsElement && \"getBBox\" in current) {\n const { top, left } = current.getBBox();\n inset.x += left;\n inset.y += top;\n /**\n * Assign the next parent element as the tag.\n */\n while (current && current.tagName !== \"svg\") {\n current = current.parentNode;\n }\n }\n }\n return inset;\n}\n\nexport { calcInset };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { interpolate };\n","import { isFunction, noopReturn } from '@motionone/utils';\nimport { updateScrollInfo } from './info.es.js';\nimport { resolveOffsets } from './offsets/index.es.js';\n\nfunction measure(container, target = container, info) {\n /**\n * Find inset of target within scrollable container\n */\n info.x.targetOffset = 0;\n info.y.targetOffset = 0;\n if (target !== container) {\n let node = target;\n while (node && node != container) {\n info.x.targetOffset += node.offsetLeft;\n info.y.targetOffset += node.offsetTop;\n node = node.offsetParent;\n }\n }\n info.x.targetLength =\n target === container ? target.scrollWidth : target.clientWidth;\n info.y.targetLength =\n target === container ? target.scrollHeight : target.clientHeight;\n info.x.containerLength = container.clientWidth;\n info.y.containerLength = container.clientHeight;\n}\nfunction createOnScrollHandler(element, onScroll, info, options = {}) {\n const axis = options.axis || \"y\";\n return {\n measure: () => measure(element, options.target, info),\n update: (time) => {\n updateScrollInfo(element, info, time);\n if (options.offset || options.target) {\n resolveOffsets(element, info, options);\n }\n },\n notify: isFunction(onScroll)\n ? () => onScroll(info)\n : scrubAnimation(onScroll, info[axis]),\n };\n}\nfunction scrubAnimation(controls, axisInfo) {\n controls.pause();\n controls.forEachNative((animation, { easing }) => {\n var _a, _b;\n if (animation.updateDuration) {\n if (!easing)\n animation.easing = noopReturn;\n animation.updateDuration(1);\n }\n else {\n const timingOptions = { duration: 1000 };\n if (!easing)\n timingOptions.easing = \"linear\";\n (_b = (_a = animation.effect) === null || _a === void 0 ? void 0 : _a.updateTiming) === null || _b === void 0 ? void 0 : _b.call(_a, timingOptions);\n }\n });\n return () => {\n controls.currentTime = axisInfo.progress;\n };\n}\n\nexport { createOnScrollHandler };\n","import { __rest } from 'tslib';\nimport { resize } from '../resize/index.es.js';\nimport { createScrollInfo } from './info.es.js';\nimport { createOnScrollHandler } from './on-scroll-handler.es.js';\n\nconst scrollListeners = new WeakMap();\nconst resizeListeners = new WeakMap();\nconst onScrollHandlers = new WeakMap();\nconst getEventTarget = (element) => element === document.documentElement ? window : element;\nfunction scroll(onScroll, _a = {}) {\n var { container = document.documentElement } = _a, options = __rest(_a, [\"container\"]);\n let containerHandlers = onScrollHandlers.get(container);\n /**\n * Get the onScroll handlers for this container.\n * If one isn't found, create a new one.\n */\n if (!containerHandlers) {\n containerHandlers = new Set();\n onScrollHandlers.set(container, containerHandlers);\n }\n /**\n * Create a new onScroll handler for the provided callback.\n */\n const info = createScrollInfo();\n const containerHandler = createOnScrollHandler(container, onScroll, info, options);\n containerHandlers.add(containerHandler);\n /**\n * Check if there's a scroll event listener for this container.\n * If not, create one.\n */\n if (!scrollListeners.has(container)) {\n const listener = () => {\n const time = performance.now();\n for (const handler of containerHandlers)\n handler.measure();\n for (const handler of containerHandlers)\n handler.update(time);\n for (const handler of containerHandlers)\n handler.notify();\n };\n scrollListeners.set(container, listener);\n const target = getEventTarget(container);\n window.addEventListener(\"resize\", listener, { passive: true });\n if (container !== document.documentElement) {\n resizeListeners.set(container, resize(container, listener));\n }\n target.addEventListener(\"scroll\", listener, { passive: true });\n }\n const listener = scrollListeners.get(container);\n const onLoadProcesss = requestAnimationFrame(listener);\n return () => {\n var _a;\n if (typeof onScroll !== \"function\")\n onScroll.stop();\n cancelAnimationFrame(onLoadProcesss);\n /**\n * Check if we even have any handlers for this container.\n */\n const containerHandlers = onScrollHandlers.get(container);\n if (!containerHandlers)\n return;\n containerHandlers.delete(containerHandler);\n if (containerHandlers.size)\n return;\n /**\n * If no more handlers, remove the scroll listener too.\n */\n const listener = scrollListeners.get(container);\n scrollListeners.delete(container);\n if (listener) {\n getEventTarget(container).removeEventListener(\"scroll\", listener);\n (_a = resizeListeners.get(container)) === null || _a === void 0 ? void 0 : _a();\n window.removeEventListener(\"resize\", listener);\n }\n };\n}\n\nexport { scroll };\n","import { scroll } from '@motionone/dom';\nimport { motionValue } from './index.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\n\nconst createScrollMotionValues = () => ({\n scrollX: motionValue(0),\n scrollY: motionValue(0),\n scrollXProgress: motionValue(0),\n scrollYProgress: motionValue(0),\n});\nfunction useScroll({ container, target, layoutEffect = true, ...options } = {}) {\n const values = useConstant(createScrollMotionValues);\n const useLifecycleEffect = layoutEffect\n ? useIsomorphicLayoutEffect\n : useEffect;\n useLifecycleEffect(() => {\n return scroll(({ x, y }) => {\n values.scrollX.set(x.current);\n values.scrollXProgress.set(x.progress);\n values.scrollY.set(y.current);\n values.scrollYProgress.set(y.progress);\n }, {\n ...options,\n container: (container === null || container === void 0 ? void 0 : container.current) || undefined,\n target: (target === null || target === void 0 ? void 0 : target.current) || undefined,\n });\n }, []);\n return values;\n}\n\nexport { useScroll };\n","import { useContext, useState, useEffect } from 'react';\nimport { motionValue } from './index.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n * const scale = useMotionValue(1)\n *\n * return \n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n const value = useConstant(() => motionValue(initial));\n /**\n * If this motion value is being used in static mode, like on\n * the Framer canvas, force components to rerender when the motion\n * value is updated.\n */\n const { isStatic } = useContext(MotionConfigContext);\n if (isStatic) {\n const [, setLatest] = useState(initial);\n useEffect(() => value.on(\"change\", setLatest), []);\n }\n return value;\n}\n\nexport { useMotionValue };\n","import { isMotionValue } from './utils/is-motion-value.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\n\nfunction useOnChange(value, callback) {\n useIsomorphicLayoutEffect(() => {\n if (isMotionValue(value)) {\n callback(value.get());\n return value.on(\"change\", callback);\n }\n }, [value, callback]);\n}\nfunction useMultiOnChange(values, handler, cleanup) {\n useIsomorphicLayoutEffect(() => {\n const subscriptions = values.map((value) => value.on(\"change\", handler));\n return () => {\n subscriptions.forEach((unsubscribe) => unsubscribe());\n cleanup();\n };\n });\n}\n\nexport { useMultiOnChange, useOnChange };\n","import { useContext, useRef, useMemo } from 'react';\nimport { isMotionValue } from './utils/is-motion-value.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\nimport { useOnChange } from './use-on-change.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { animate } from '../animation/legacy-popmotion/index.mjs';\n\n/**\n * Creates a `MotionValue` that, when `set`, will use a spring animation to animate to its new state.\n *\n * It can either work as a stand-alone `MotionValue` by initialising it with a value, or as a subscriber\n * to another `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useSpring(0, { stiffness: 300 })\n * const y = useSpring(x, { damping: 10 })\n * ```\n *\n * @param inputValue - `MotionValue` or number. If provided a `MotionValue`, when the input `MotionValue` changes, the created `MotionValue` will spring towards that value.\n * @param springConfig - Configuration options for the spring.\n * @returns `MotionValue`\n *\n * @public\n */\nfunction useSpring(source, config = {}) {\n const { isStatic } = useContext(MotionConfigContext);\n const activeSpringAnimation = useRef(null);\n const value = useMotionValue(isMotionValue(source) ? source.get() : source);\n useMemo(() => {\n return value.attach((v, set) => {\n /**\n * A more hollistic approach to this might be to use isStatic to fix VisualElement animations\n * at that level, but this will work for now\n */\n if (isStatic)\n return set(v);\n if (activeSpringAnimation.current) {\n activeSpringAnimation.current.stop();\n }\n activeSpringAnimation.current = animate({\n keyframes: [value.get(), v],\n velocity: value.getVelocity(),\n type: \"spring\",\n ...config,\n onUpdate: set,\n });\n return value.get();\n });\n }, [JSON.stringify(config)]);\n useOnChange(source, (v) => value.set(parseFloat(v)));\n return value;\n}\n\nexport { useSpring };\n"],"names":["getCardUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CardRoot","styled","Paper","name","overridesResolver","props","styles","root","overflow","React","inProps","ref","useThemeProps","className","raised","other","_objectWithoutPropertiesLoose","ownerState","_extends","classes","composeClasses","useUtilityClasses","_jsx","clsx","elevation","undefined","_t","_t2","_t3","_t4","_t5","_t6","indeterminate1Keyframe","keyframes","indeterminate2Keyframe","bufferKeyframe","getColorShade","theme","color","palette","mode","lighten","main","darken","LinearProgressRoot","capitalize","variant","position","display","height","zIndex","colorAdjust","backgroundColor","content","left","top","right","bottom","opacity","transform","LinearProgressDashed","dashed","marginTop","width","backgroundImage","backgroundSize","backgroundPosition","css","LinearProgressBar1","bar","bar1Indeterminate","bar1Determinate","bar1Buffer","transition","transformOrigin","LinearProgressBar2","bar2Indeterminate","bar2Buffer","value","valueBuffer","slots","bar1","bar2","getLinearProgressUtilityClass","useTheme","rootProps","inlineStyles","Math","round","direction","process","_jsxs","role","children","style","getSkeletonUtilityClass","pulseKeyframe","waveKeyframe","SkeletonRoot","animation","hasChildren","withChildren","fitContent","heightAuto","radiusUnit","getUnit","shape","borderRadius","radiusValue","toUnitless","alpha","text","primary","marginBottom","visibility","maxWidth","action","hover","component","Boolean","as","isUnitless","String","parseFloat","length","input","match","convertLength","baseFontSize","toUnit","fromUnit","pxLength","outputLength","toFixed","alignProperty","size","grid","sizeBelow","sizeAbove","fontGrid","lineHeight","pixels","htmlFontSize","responsiveProperty","cssProperty","min","max","unit","breakpoints","output","factor","forEach","breakpoint","hasOwn","hasOwnProperty","classNames","i","arguments","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","QueryHandler","require","each","MediaQuery","query","isUnconditional","this","handlers","mql","window","matchMedia","self","listener","currentTarget","assess","addListener","constuctor","addHandler","handler","qh","matches","on","removeHandler","h","equals","destroy","splice","clear","removeListener","Util","isFunction","MediaQueryDispatch","Error","queries","browserIsIncapable","constructor","register","q","options","shouldDegrade","unregister","deferSetup","setup","initialised","off","unmatch","target","collection","fn","canUseDOM","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","define","camel2hyphen","obj2mq","obj","mq","features","keys","feature","index","test","isDimension","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_defineProperties","descriptor","configurable","writable","assign","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","e","_isNativeReflectConstruct","result","Super","NewTarget","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","minLen","n","slice","len","arr2","translate","str","replaceStrings","translated","placeholder","replace","getWindowWidth","global","innerWidth","isCrossOriginFrame","location","hostname","parent","getHighestSafeWindowContext","MAX_ZOOM_LEVEL","KEYS","ReactImageLightbox","_Component","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","state","isClosing","animationDisabled","shouldAnimate","zoomLevel","offsetX","offsetY","loadErrorStatus","outerEl","zoomInBtn","zoomOutBtn","caption","closeIfClickInner","bind","handleImageDoubleClick","handleImageMouseWheel","handleKeyInput","handleMouseUp","handleMouseDown","handleMouseMove","handleOuterMousewheel","handleTouchStart","handleTouchMove","handleTouchEnd","handlePointerEvent","handleCaptionMousewheel","handleWindowResize","handleZoomInButtonClick","handleZoomOutButtonClick","requestClose","requestMoveNext","requestMovePrev","timeouts","currentAction","eventsSource","pointerList","preventInnerClose","preventInnerCloseTimeout","keyPressed","imageCache","lastKeyDownTime","resizeTimeout","wheelActionTimeout","resetScrollTimeout","scrollX","scrollY","moveStartX","moveStartY","moveStartOffsetX","moveStartOffsetY","swipeStartX","swipeStartY","swipeEndX","swipeEndY","pinchTouchList","pinchDistance","keyCounter","moveRequested","_this2","setState","windowContext","listeners","resize","mouseup","touchend","touchcancel","pointerdown","pointermove","pointerup","pointercancel","type","loadAllImages","nextProps","_this3","getSrcTypes","srcType","prevProps","_this4","sourcesChanged","prevSrcDict","nextSrcDict","prevSrc","loaded","_this5","didUnmount","removeEventListener","tid","clearTimeout","_setTimeout","setTimeout","_x","_x2","func","time","_this6","id","_this7","imageSrc","fitSizes","isImageLoaded","getFitSizes","concat","src","targetHeight","targetWidth","stretch","boxSize","getLightboxRect","maxHeight","imagePadding","currentImageInfo","getBestImageForType","maxX","minX","maxY","minY","zoomMultiplier","getZoomMultiplier","keyEnding","pow","current","getBoundingClientRect","innerHeight","_clearTimeout","_x3","clientX","clientY","enableZoom","nextZoomLevel","imageBaseSize","currentZoomMultiplier","nextZoomMultiplier","boxRect","pointerX","pointerY","currentImageOffsetX","currentImageOffsetY","nextImageRealOffsetX","nextImageRealOffsetY","nextOffsetX","nextOffsetY","maxOffsets","getMaxOffsets","event","search","stopPropagation","isAnimating","keyCode","which","currentTime","Date","getTime","keyRepeatLimit","preventDefault","nextSrc","keyRepeatKeyupBonus","_this8","actionDelay","abs","deltaY","deltaX","xThreshold","changeZoom","filterPointersBySource","pointer","_ref","_this9","_ref2","shouldHandleEvent","isTargetMatchImage","addPointer","parseMouseEvent","multiPointerStart","multiPointerMove","removePointer","multiPointerEnd","parsePointerEvent","_this10","changedTouches","eventTouch","parseTouchPointer","map","_this11","touch","handleSwipeStart","handleMoveStart","handleEnd","decideMoveOrSwipe","handlePinchStart","handleMove","handleSwipe","handlePinch","setPreventInnerClose","handleMoveEnd","handleSwipeEnd","handlePinchEnd","_ref3","x","y","_ref4","newOffsetX","newOffsetY","_this12","animationDuration","_ref5","_ref6","xDiff","xDiffAbs","yDiffAbs","_ref7","_ref8","a","b","sqrt","_ref9","_ref10","_ref11","calculatePinchDistance","oldPointer","newDistance","_this$calculatePinchC","calculatePinchCenter","forceUpdate","focus","_this$caption$current2","scrollHeight","scrollTop","_this13","inMemoryImage","Image","imageCrossOrigin","crossOrigin","onerror","errorEvent","onImageLoadError","prevState","onload","onImageLoad","_this14","generateLoadDoneCallback","loadImage","_this15","closeLightbox","onCloseRequest","animationOnKeyInput","_this16","nextState","onMovePrevRequest","onMoveNextRequest","requestMove","_this17","_this$props","clickOutsideToClose","discourageDownloads","imageTitle","toolbarButtons","reactModalStyle","_onAfterOpen","onAfterOpen","reactModalProps","loader","_this$state","transitionStyle","keyEndings","_ref12","images","addImage","imageClass","transforms","bestImageInfo","imageStyle","getTransform","cursor","some","imageLoadErrorMessage","onDoubleClick","onWheel","onDragStart","alt","draggable","loadingIcon","_","zoom","modalStyle","overlay","border","padding","Modal","isOpen","onRequestClose","contentLabel","appElement","body","wrapperClassName","animationDirection","onMouseMove","onMouseDown","onTouchStart","onTouchMove","tabIndex","onKeyDown","onKeyUp","onClick","prevLabel","title","nextLabel","button","zoomInLabel","disabled","zoomOutLabel","closeLabel","imageCaption","mouseEvent","parseInt","touchPointer","identifier","pointerEvent","pointerId","_ref13","_ref13$x","_ref13$y","_ref13$zoom","nextX","windowWidth","scaleFactor","Component","propTypes","mainSrc","PropTypes","mainSrcThumbnail","prevSrcThumbnail","nextSrcThumbnail","defaultProps","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","MountedMapsContext","deepEqual","aKeys","bKeys","syncProjection","dest","getProjection","srcProjection","setProjection","transformToViewState","tr","longitude","center","lng","latitude","lat","pitch","bearing","applyViewStateToTransform","v","viewState","changed","isPaddingEqual","refProps","normalizeStyle","toJS","layers","layerIndex","layer","normalizedLayer","interactive","layerRef","propName","DEFAULT_STYLE","version","sources","pointerEvents","mousedown","mouseover","mousemove","click","dblclick","mouseenter","mouseleave","mouseout","contextmenu","touchstart","touchmove","cameraEvents","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomend","rotatestart","rotate","rotateend","pitchstart","pitchend","otherEvents","wheel","boxzoomstart","boxzoomend","boxzoomcancel","load","render","idle","remove","data","styledata","sourcedata","error","settingNames","handlerNames","Mapbox","MapClass","container","_map","_internalUpdate","_inRender","_hoveredFeatures","_deferredEvents","_onEvent","cb","console","_onPointerEvent","_updateHover","interactiveLayerIds","_queryRenderedFeatures","point","_onCameraEvent","_MapClass","_initialize","_renderTransform","setProps","oldProps","settingsChanged","_updateSettings","_createShadowTransform","sizeChanged","_updateSize","viewStateChanged","_updateViewState","_updateStyle","_updateStyleComponents","_updateHandlers","isMoving","redraw","that","savedMaps","pop","oldContainer","getContainer","childNodes","appendChild","_container","resizeObserver","_resizeObserver","disconnect","observe","styleDiffing","initialViewState","bounds","fitBounds","fitBoundsOptions","duration","isStyleLoaded","fire","once","_update","mapStyle","mapOptions","accessToken","mapboxAccessToken","getAccessTokenFromEnv","gl","getContext","HTMLCanvasElement","setPadding","getCanvas","renderMap","_render","runRenderTaskQueue","_renderTaskQueue","run","_onBeforeRepaint","_onAfterRepaint","fireEvent","_fireEvent","eventName","recycle","querySelector","_frame","cancel","renderTransform","newTransform","clone","pixelsToGLUnits","cloneTransform","painter","triggerEvents","cameraElevationReference","deferredEvents","currProps","setter","toUpperCase","diff","localIdeographFontFamily","setStyle","setLight","light","setFog","fog","setTerrain","terrain","getSource","newValue","_a","_b","enable","disable","queryRenderedFeatures","getLayer","onMouseEnter","onMouseLeave","eventType","wasHovering","isHovering","baseFire","properties","exec","MapboxAccessToken","REACT_APP_MAPBOX_ACCESS_TOKEN","skipMethods","createRef","mapInstance","getMap","getCenter","getZoom","getBearing","getPitch","getPadding","getBounds","project","lnglat","unproject","queryTerrainElevation","geometry","Set","proto","getOwnPropertyNames","add","getMethodNames","useLayoutEffect","useEffect","globalSettings","MapContext","Map","defaultLib","mountedMapsContext","useContext","setMapInstance","useState","containerRef","useRef","contextValue","mapLib","mapbox","isMounted","Promise","resolve","then","mapboxgl","RTLTextPlugin","getRTLTextPluginStatus","setRTLTextPlugin","setGlobals","supported","reuseMaps","reuse","onMapMount","catch","onError","originalEvent","onMapUnmount","useIsomorphicLayoutEffect","useImperativeHandle","useMemo","Provider","unitlessNumber","applyReactStyle","element","Number","isFinite","memo","forwardRef","thisRef","marker","el","mk","Marker","setLngLat","getElement","evt","lngLat","getLngLat","onDrag","onDragEnd","addTo","offset","popup","rotation","rotationAlignment","pitchAlignment","ax","ay","bx","by","arePointsEqual","getOffset","setOffset","isDraggable","setDraggable","getRotation","setRotation","getRotationAlignment","setRotationAlignment","getPitchAlignment","setPitchAlignment","getPopup","setPopup","createPortal","getClassList","trim","split","pp","Popup","onOpen","onClose","setDOMContent","anchor","setMaxWidth","prevClassList","nextClassList","c","has","removeClassName","addClassName","onCreate","arg1","arg2","arg3","context","ctrl","opts","onAdd","onRemove","hasControl","addControl","removeControl","useControl","AttributionControl","FullscreenControl","containerId","getElementById","_controlContainer","gc","GeolocateControl","setupUI","_setupUI","args","hasChildNodes","onGeolocate","onOutOfMaxBounds","onTrackUserLocationStart","onTrackUserLocationEnd","NavigationControl","ScaleControl","propsRef","setUnit","assert","condition","message","layerCounter","setStyleLoaded","_loaded","removeLayer","layout","paint","minzoom","maxzoom","beforeId","moveLayer","prevLayout","setLayoutProperty","prevPaint","setPaintProperty","setFilter","setLayerZoomRange","updateLayer","warn","addLayer","createLayer","sourceCounter","allLayers","getStyle","removeSource","changedKey","changedKeyCount","setData","updateImage","url","coordinates","setCoordinates","setUrl","setTiles","tiles","updateSource","addSource","createSource","child","cloneElement","_Map","_Popup","_FullscreenControl","_NavigationControl","_GeolocateControl","_ScaleControl","Layer","_Layer","Source","_Source","bodyOpenClassName","portalClassName","_createClass","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","__esModule","newObj","_interopRequireWildcard","_safeHTMLElement","_safeHTMLElement2","_reactLifecyclesCompat","isReact16","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","parentSelector","_temp","_len","_key","removePortal","unmountComponentAtNode","node","contains","removeChild","portalRef","portal","renderPortal","defaultStyles","prevParent","nextParent","_props","now","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","setElement","bool","isRequired","string","htmlOpenClassName","oneOfType","base","afterOpen","overlayClassName","instanceOf","SafeHTMLCollection","SafeNodeList","arrayOf","number","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","background","WebkitOverflowScrolling","outline","_typeof","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","getElementsByTagName","show","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","open","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","requestAnimationFrame","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","activeElement","buildClassName","additional","attributesFromObject","prefix","items","reduce","acc","moveFromContentToOverlay","cancelAnimationFrame","hide","_props2","contentStyles","overlayStyles","overlayProps","contentProps","onMouseUp","modal","testId","resetState","globalElement","removeAttribute","querySelectorAll","log","assertNodeList","useElement","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","setAttribute","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","HTMLCollection","NodeList","before","after","item","parentNode","instances","_arr2","_i2","check","nodeName","_portalOpenInstances","subscribe","openInstances","cloneNode","firstChild","insertBefore","lastChild","parentElement","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","at","classString","classListRef","poll","toLowerCase","incrementReference","decrementReference","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","detachEvent","_tabbable","_tabbable2","needToFocus","portalOpenInstances","PortalOpenInstances","openInstance","indexOf","emit","callback","subscribers","subscriber","_exenv","EE","SafeHTMLElement","HTMLElement","tabbable","shiftKey","head","tail","getActiveElement","checkSafari","navigator","userAgent","shadowRoot","findTabbableDescendants","descendants","finished","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","innerHTML","getComputedStyle","getPropertyValue","scrollWidth","exception","focusable","isTabIndexNotNaN","href","rootNode","getRootNode","host","visible","getAttribute","isTabIndexNaN","isNaN","_Modal","_Modal2","PrevArrow","NextArrow","_classnames","_innerSliderUtils","_objectSpread","_React$PureComponent","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","_default","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","Dots","spec","onMouseOver","dotCount","ceil","mouseEvents","_rightBound","rightBound","clamp","_leftBound","leftBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_React$Component","list","track","elem","getHeight","slidesToLoad","getOnDemandLazySlides","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","autoplayTimer","checkImagesLoad","setTrackStyle","didPropsChange","Children","count","changeSlide","pause","debouncedResize","resizeWindow","isTrackMounted","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_trackStyle","currentWidth","childrenCount","trackLeft","imagesCount","loadedCount","image","onclick","prevClickHandler","_index","dontAnimate","asNavFor","_slideHandler","slideHandler","asNavForIndex","innerSlider","firstBatch","nodes","clickable","dir","keyHandler","ontouchmove","returnValue","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","nextIndex","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onTouchEnd","touchEnd","onTouchCancel","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpt","sort","bQuery","minWidth","media","settings","newProps","resp","toArray","newChildren","newSlide","j","row","k","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","floor","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","preCloneNo","reverse","handleRef","checkSpecKeys","checkNavigable","slidesOnRight","slidesOnLeft","siblingDirection","safePreventDefault","lazySlidesOnRight","lazySlidesOnLeft","getWidth","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getNavigableIndexes","lowerBound","upperBound","_reactName","onDemandSlides","requiredSlides","xDist","yDist","r","swipeAngle","atan2","PI","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","tagName","touches","pageX","pageY","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","counter","indexes","navigables","prevNavigable","swipedSlide","slickList","every","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","marginLeft","slidesToOffset","targetSlideIndex","trackElem","MapShim","getIndex","entry","class_1","__entries__","get","set","delete","entries","ctx","isBrowser","global$1","Function","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","warning","coordEach","geojson","excludeWrapCoord","l","stopG","coords","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","stop","featureIndex","geometries","geomIndex","multiFeatureIndex","geometryIndex","geomType","turf_bbox_default","recompute","Infinity","coord","__rest","s","t","resizeHandlers","notifyTarget","borderBoxSize","contentSize","inlineSize","blockSize","getElementSize","notifyAll","resizeElement","elements","selectorCache","resolveElements","elementHandlers","windowCallbacks","windowResizeHandler","info","progress","updateAxisInfo","axisName","axis","prev","prevTime","scrollLength","elapsed","velocity","frameDuration","updateScrollInfo","noopReturn","mix","fillOffset","remaining","offsetProgress","defaultOffset","isNumber","getEasingForSegment","isEasingList","rangeSize","wrap","ScrollOffset","Enter","Exit","Any","All","isString","namedEdges","start","end","resolveEdge","edge","inset","delta","asNumber","endsWith","resolveOffset","containerLength","targetLength","targetInset","offsetDefinition","targetPoint","containerPoint","resolveOffsets","lengthLabel","offsetParent","calcInset","targetSize","containerSize","hasChanged","interpolate","numOffsets","interpolatorOffsets","remainder","progressInRange","segmentEasing","measure","targetOffset","createOnScrollHandler","onScroll","update","notify","scrubAnimation","controls","axisInfo","forEachNative","updateDuration","timingOptions","effect","updateTiming","scrollListeners","resizeListeners","onScrollHandlers","getEventTarget","scroll","containerHandlers","containerHandler","performance","passive","onLoadProcesss","createScrollMotionValues","motionValue","scrollXProgress","scrollYProgress","useScroll","layoutEffect","values","useConstant","useLifecycleEffect","useMotionValue","initial","isStatic","MotionConfigContext","setLatest","useOnChange","isMotionValue","useSpring","config","activeSpringAnimation","attach","animate","getVelocity","onUpdate","JSON","stringify"],"sourceRoot":""}