{"version":3,"file":"LazyResultsPage.8f38ac8ae13396e3.prod.js","mappings":"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","sources":["webpack://aurora-new-frontend/./packages/common/packages/core/src/location-map-pin/location-map-pin.svg","webpack://aurora-new-frontend/./packages/common/packages/core/src/location-map-pin/location-map-pin.tsx","webpack://aurora-new-frontend/./packages/common/packages/core/src/centering-guide/centering-guide.tsx","webpack://aurora-new-frontend/./packages/common/packages/shared-domain/src/use-intercept-mouse/use-intercept-mouse.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/hooks/close-lcai-with-redirect/close-lcai-with-redirect.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/hooks/close-lcai-with-redirect/redirect-url-replacer.ts","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/components/buttons.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/components/savings-estimate.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/components/solar-equation.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/components/next-step.tsx","webpack://aurora-new-frontend/./node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","webpack://aurora-new-frontend/./node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","webpack://aurora-new-frontend/./node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","webpack://aurora-new-frontend/./node_modules/@react-spring/core/dist/react-spring-core.esm.js","webpack://aurora-new-frontend/./node_modules/@react-spring/web/dist/react-spring-web.esm.js","webpack://aurora-new-frontend/./packages/common/packages/core/src/collapsible-drawer/drawer-icon.tsx","webpack://aurora-new-frontend/./packages/common/packages/core/src/collapsible-drawer/collapsible-drawer.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/components/cad.tsx","webpack://aurora-new-frontend/./packages/cad-core/src/cad-wrapper/cad-wrapper.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/pages/results/results-page.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/shared-components/portal-container.tsx","webpack://aurora-new-frontend/./packages/lead-capture/src/utils/text-constants.tsx","webpack://aurora-new-frontend/./packages/common/packages/core/src/collapsible-drawer/ lazy ^\\.\\/.*\\.svg$ chunkName: collapsible-drawer-icons prefetchOrder: 0 namespace object"],"sourcesContent":["export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0NyIgZmlsbD0ibm9uZSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzEuNTcwMiAzNi4zMTU1QzM2LjY3MTYgMzIuNjkxMiA0MCAyNi43MzQzIDQwIDIwQzQwIDguOTU0MyAzMS4wNDU3IDAgMjAgMEM4Ljk1NDMgMCAwIDguOTU0MyAwIDIwQzAgMjYuNzMzOSAzLjMyNzk1IDMyLjY5MDUgOC40Mjg4NyAzNi4zMTQ4QzkuMzk3MTIgMzcuMTM1NiAxMC40NTgyIDM4LjAwMzIgMTEuNDc4MSAzOC44MzcxQzEyLjE4NjkgMzkuNDE2NyAxMi44NzU5IDM5Ljk4IDEzLjQ5OTkgNDAuNUMxNC42MjE2IDQxLjQzNDcgMTUuODEzMiA0My4xMzgzIDE2Ljg2NTYgNDQuOTA1MkMxOC4yMDQzIDQ3LjE1MjggMjEuNzk1NSA0Ny4xNTI4IDIzLjEzNDMgNDQuOTA1MkMyNC4xODY3IDQzLjEzODMgMjUuMzc4MiA0MS40MzQ3IDI2LjQ5OTkgNDAuNUMyNy4xMjQ0IDM5Ljk3OTYgMjcuODEzOSAzOS40MTU4IDI4LjUyMzMgMzguODM1OEMyOS41NDI0IDM4LjAwMjUgMzAuNjAyNiAzNy4xMzU3IDMxLjU3MDIgMzYuMzE1NVoiIGZpbGw9IiNERjQwOUQiLz4KPGNpcmNsZSByPSI1IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAyMCAyMCkiIGZpbGw9IiM4RTFDNjAiLz4KPC9zdmc+\"","import styled from 'styled-components';\n\nimport LocationMapPinImage from './location-map-pin.svg';\n\nconst DropShadowImg = styled.img`\n filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));\n`;\nexport const LocationMapPin = ({ size = 32 }: { size?: number }) => {\n return ;\n};\n","import styled from 'styled-components';\n\nimport { Colors } from '../colors';\nimport { AuroraIcon, AuroraIconType } from '../icon';\nimport { LocationMapPin } from '../location-map-pin';\n\nconst OverlayWrapper = styled.div`\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n`;\n\nconst TextWrapper = styled.div>`\n filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));\n z-index: 11;\n text-align: center;\n color: ${Colors.WHITE};\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n transform: ${({ maxSize, minSize }) =>\n `translate(0, calc(clamp(${minSize}, 18vmin, ${maxSize}) / 2 + clamp(5px, 2vmin, 15px)))`};\n`;\n\nconst CircleWrapper = styled.div>`\n pointer-events: none;\n z-index: 10;\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${({ maxSize, minSize }) => `clamp(${minSize}, 18vmin, ${maxSize})`};\n height: ${({ maxSize, minSize }) => `clamp(${minSize}, 18vmin, ${maxSize})`};\n transform: translate(-50%, -50%);\n`;\n\nconst TextCenterWrapper = styled.div`\n pointer-events: none;\n z-index: 10;\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n`;\n\nconst PinIconWrapper = styled.div`\n z-index: 11;\n pointer-events: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`;\n\nexport enum CenteringGuideType {\n NoCircle,\n Default,\n Pin,\n}\n\ninterface ICircleProps {\n withBorder: boolean;\n diameter: number;\n translation?: number;\n background?: string;\n}\n\nconst Circle = styled.div`\n pointer-events: none;\n z-index: 10;\n position: absolute;\n border-radius: 50%;\n border: ${({ withBorder }) => withBorder && '1px solid #c9c9c9'};\n width: ${({ diameter }) => diameter}%;\n height: ${({ diameter }) => diameter}%;\n background: ${({ background }) => background};\n transform: ${({ translation }) => translation && `translate(${translation}%, ${translation}%)`};\n`;\n\nconst OuterCircle = () => {\n return ;\n};\n\nconst InnerCircle = () => {\n return (\n \n );\n};\n\nconst CenteringIconBackground = () => {\n return ;\n};\n\nconst CenteringIcon = ({ icon = AuroraIconType.LOCATION_PIN }: { icon?: AuroraIconType }) => (\n \n \n \n);\n\nconst Text = ({\n maxSize,\n minSize,\n text,\n}: Pick) => (\n \n \n {text}\n \n \n);\n\nconst pinContent = (\n \n \n \n);\n\ninterface CircleDefaultContentProps {\n icon?: AuroraIconType;\n maxSize: string;\n minSize: string;\n}\n\nconst defaultContent = ({ maxSize, minSize, icon }: CircleDefaultContentProps) => {\n return (\n \n \n \n \n \n \n );\n};\n\nconst noCircleContent = ({ maxSize, minSize, icon }: CircleDefaultContentProps) => {\n return (\n \n \n \n \n );\n};\n\nexport interface ICenteringGuideProps {\n icon?: AuroraIconType;\n minSize?: string;\n maxSize?: string;\n centeringGuideType?: CenteringGuideType;\n text?: string;\n}\n\nexport const CenteringGuide = ({\n icon,\n minSize = '170px',\n maxSize = '170px',\n centeringGuideType = CenteringGuideType.Default,\n text,\n}: ICenteringGuideProps) => {\n const guideMap = {\n [CenteringGuideType.NoCircle]: noCircleContent({ icon, maxSize, minSize }),\n [CenteringGuideType.Default]: defaultContent({ icon, maxSize, minSize }),\n [CenteringGuideType.Pin]: pinContent,\n };\n\n return (\n \n {guideMap[centeringGuideType]}\n {text && }\n \n );\n};\n","import { useEffect, useState } from 'react';\n\ninterface UseInterceptMouseProps {\n cadDomNode?: HTMLCanvasElement | null;\n}\n\nexport const useInterceptMouse = ({ cadDomNode }: UseInterceptMouseProps) => {\n const [clicked, setClicked] = useState(false);\n\n useEffect(() => {\n if (!cadDomNode) return undefined;\n const onMouse = () => {\n setClicked(true);\n };\n const options = { capture: true, once: true, passive: true };\n // NOTE: This may fire more than once, but the total number of events should be small\n cadDomNode.addEventListener('pointerdown', onMouse, options);\n\n return () => {\n cadDomNode.removeEventListener('pointerdown', onMouse, options);\n };\n }, [cadDomNode]);\n\n return clicked;\n};\n","import { useDebouncedCallback } from '@aurorasolar/common-core/src/hooks';\nimport {\n Analytics,\n AnalyticsEventTypes,\n AppRouterNavigation,\n useAppModule,\n} from '@aurorasolar/common-module-loader';\n\nimport { sendExitMessage } from '../../message/message';\nimport { DEBOUNCE_TIME } from '../../utils/constants';\nimport { redirectUrlReplacer } from './redirect-url-replacer';\n\ninterface CloseLcaiWithRedirectProps {\n projectId: string;\n redirectUrl?: string | null;\n sourcePage: string;\n templateId: string;\n}\n\nexport const useCloseLcaiWithRedirect = ({\n projectId,\n redirectUrl,\n sourcePage,\n templateId,\n}: CloseLcaiWithRedirectProps) => {\n const analytics = useAppModule(Analytics);\n const navigation = useAppModule(AppRouterNavigation);\n\n return useDebouncedCallback(\n async () => {\n await analytics?.track(AnalyticsEventTypes.LeadCaptureExitedWidget, {\n project_id: projectId,\n source_page: sourcePage,\n });\n\n sendExitMessage(redirectUrlReplacer({ projectId, redirectUrl }));\n navigation?.navigate(`/${templateId}`, { replace: true });\n },\n [analytics, navigation, templateId, projectId, sourcePage, redirectUrl],\n DEBOUNCE_TIME,\n );\n};\n","interface RedirectUrlReplacerArgs {\n projectId: string;\n redirectUrl?: string | null;\n}\n\nexport const redirectUrlReplacer = ({ redirectUrl, projectId }: RedirectUrlReplacerArgs) => {\n if (!redirectUrl) {\n return undefined;\n }\n\n const REPLACEMENT_MATCHER = {\n [ReplacementStrings.LEAD_ID]: projectId,\n };\n\n let replacedString = redirectUrl;\n\n Object.values(ReplacementStrings).forEach((replacement) => {\n replacedString = replacedString?.replace(\n new RegExp(`\\\\${replacement}`, 'g'),\n REPLACEMENT_MATCHER[replacement],\n );\n });\n\n return replacedString;\n};\n\nexport enum ReplacementStrings {\n LEAD_ID = '$LEAD_ID',\n}\n","import { AuroraIcon, AuroraIconType } from '@aurorasolar/common-core/src/icon';\n\nimport { LCAIButton, LCAIButtonIntent } from '../../../typography/lcai-button/lcai-button';\nimport { TEXT } from '../../../utils/text-constants';\n\nexport enum ResultsButtonsTestIds {\n COMPLETE_PROFILE_BUTTON = 'complete-profile-button-test-id',\n QUOTE_BUTTON = 'quote-button-test-id',\n DONE_BUTTON = 'done-button-test-id',\n}\n\ninterface ButtonsProps {\n closeLCAIWithRedirect: () => void;\n completeProfile: () => void;\n endFlowButtonPrimary?: string | null;\n hasCustomerInfo: boolean;\n isProfileComplete: boolean;\n requestQuote: () => void;\n resultsPageButtonPrimary?: string | null;\n}\n\nexport function Buttons({\n closeLCAIWithRedirect,\n completeProfile,\n endFlowButtonPrimary,\n hasCustomerInfo,\n isProfileComplete,\n requestQuote,\n resultsPageButtonPrimary,\n}: ButtonsProps) {\n return (\n <>\n {!isProfileComplete ? (\n \n \n {resultsPageButtonPrimary || TEXT.results.primaryButtonText}\n \n ) : (\n <>\n \n {endFlowButtonPrimary || TEXT.common.endFlowButton}\n \n \n )}\n \n );\n}\n","import { Box } from 'reflexbox/styled-components';\n\nimport { Colors } from '@aurorasolar/common-core/src/colors';\n\nimport { LCAIText } from '../../../typography/lcai-text/lcai-text';\n\ninterface SavingsEstimateProps {\n savings: string;\n savingsPeriod: number;\n}\n\nexport function SavingsEstimate({ savings, savingsPeriod }: SavingsEstimateProps) {\n return (\n <>\n \n \n ${savings}\n \n \n \n \n Over {savingsPeriod} years, estimated\n \n \n \n );\n}\n","import { Flex } from 'reflexbox/styled-components';\nimport styled from 'styled-components';\n\nimport { Colors } from '@aurorasolar/common-core/src/colors';\nimport { AuroraIcon, AuroraIconType } from '@aurorasolar/common-core/src/icon';\n\nimport { BoxWithMargin } from '../../../shared-components';\nimport { LCAIText } from '../../../typography/lcai-text/lcai-text';\n\ninterface SolarEquationProps {\n energyOffset: number;\n solarPanelCount: number;\n sunlightHours: string | 0;\n}\n\nexport function SolarEquation({\n energyOffset,\n solarPanelCount,\n sunlightHours,\n}: SolarEquationProps) {\n return (\n \n \n \n \n {solarPanelCount}\n solar panels\n \n +\n \n \n {sunlightHours}\n hours of sunlight\n \n =\n \n \n {energyOffset}%\n energy offset\n \n \n \n );\n}\n\nconst Container = styled(Flex)`\n justify-content: space-around;\n text-align: center;\n align-items: center;\n background-color: #f9f9f9;\n padding: 24px 0;\n border-radius: 6px;\n`;\n\nconst Item = styled(Flex)`\n align-items: center;\n flex-direction: column;\n width: 73px;\n`;\n\nconst Icon = styled(AuroraIcon).attrs((props) => ({\n fillColor: Colors.BLACK,\n size: props.size ?? '20px',\n}))`\n height: 24px;\n display: flex;\n align-items: center;\n`;\n\nconst Value = styled(LCAIText).attrs(() => ({\n color: Colors.BLACK,\n fontWeight: 'medium',\n marginTop: '16px',\n type: 'header-3',\n}))``;\n\nconst Description = styled(LCAIText).attrs(() => ({\n color: Colors.GRAY_700,\n fontWeight: 'regular',\n marginTop: '10px',\n textTransform: 'uppercase',\n type: 'body-4',\n}))`\n letter-spacing: 0.75px;\n`;\n\nconst Equation = styled(LCAIText).attrs(() => ({\n color: Colors.GRAY_700,\n fontWeight: 'regular',\n type: 'results-equation',\n}))``;\n","import { Box } from 'reflexbox/styled-components';\nimport styled from 'styled-components';\n\nimport { BoxWithMargin } from '../../../shared-components';\nimport { LCAIButton, LCAIButtonIntent } from '../../../typography/lcai-button/lcai-button';\nimport { LCAIText } from '../../../typography/lcai-text/lcai-text';\nimport { HEADER_COLOR } from '../../../utils/constants';\n\nexport enum NextStepTestIds {\n NEXT_STEP_QUOTE = 'next-step-quote-test-id',\n NEXT_STEP_COMPLETE_PROFILE = 'next-step-complete-profile-test-id',\n}\n\ninterface NextStepProps {\n completeProfile: () => void;\n hasCustomerInfo: boolean;\n requestQuote: () => void;\n}\n\nexport function NextStep({ completeProfile, hasCustomerInfo, requestQuote }: NextStepProps) {\n return (\n \n \n Next step\n \n \n \n \n Get a more accurate quote from a solar expert.\n \n \n \n \n );\n}\n\nconst StepButton = styled(LCAIButton)`\n text-align: initial;\n`;\n","let updateQueue = makeQueue();\nconst raf = fn => schedule(fn, updateQueue);\nlet writeQueue = makeQueue();\n\nraf.write = fn => schedule(fn, writeQueue);\n\nlet onStartQueue = makeQueue();\n\nraf.onStart = fn => schedule(fn, onStartQueue);\n\nlet onFrameQueue = makeQueue();\n\nraf.onFrame = fn => schedule(fn, onFrameQueue);\n\nlet onFinishQueue = makeQueue();\n\nraf.onFinish = fn => schedule(fn, onFinishQueue);\n\nlet timeouts = [];\n\nraf.setTimeout = (handler, ms) => {\n let time = raf.now() + ms;\n\n let cancel = () => {\n let i = timeouts.findIndex(t => t.cancel == cancel);\n if (~i) timeouts.splice(i, 1);\n pendingCount -= ~i ? 1 : 0;\n };\n\n let timeout = {\n time,\n handler,\n cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n pendingCount += 1;\n start();\n return timeout;\n};\n\nlet findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);\n\nraf.cancel = fn => {\n onStartQueue.delete(fn);\n onFrameQueue.delete(fn);\n onFinishQueue.delete(fn);\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\n\nraf.sync = fn => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = fn => {\n let lastArgs;\n\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nlet nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : () => {};\n\nraf.use = impl => nativeRaf = impl;\n\nraf.now = typeof performance != 'undefined' ? () => performance.now() : Date.now;\n\nraf.batchedUpdates = fn => fn();\n\nraf.catch = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = () => {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nlet ts = -1;\nlet pendingCount = 0;\nlet sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction stop() {\n ts = -1;\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n let prevTs = ts;\n ts = raf.now();\n let count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), t => t.handler());\n pendingCount -= count;\n }\n\n if (!pendingCount) {\n stop();\n return;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n let next = new Set();\n let current = next;\n return {\n add(fn) {\n pendingCount += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n\n delete(fn) {\n pendingCount -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n\n flush(arg) {\n if (current.size) {\n next = new Set();\n pendingCount -= current.size;\n eachSafely(current, fn => fn(arg) && next.add(fn));\n pendingCount += next.size;\n current = next;\n }\n }\n\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(value => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\nconst __raf = {\n count() {\n return pendingCount;\n },\n\n isRunning() {\n return ts >= 0;\n },\n\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n pendingCount = 0;\n }\n\n};\n\nexport { __raf, raf };\n","import { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nfunction noop() {}\nconst defineHidden = (obj, key, value) => Object.defineProperty(obj, key, {\n value,\n writable: true,\n configurable: true\n});\nconst is = {\n arr: Array.isArray,\n obj: a => !!a && a.constructor.name === 'Object',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === undefined\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\nconst each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n\n return;\n }\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nconst toArray = a => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nconst flushCalls = (queue, ...args) => flush(queue, fn => fn(...args));\nconst isSSR = () => typeof window === 'undefined' || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\n\nlet createStringInterpolator$1;\nlet to;\nlet colors$1 = null;\nlet skipAnimation = false;\nlet willAdvance = noop;\nconst assign = globals => {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get createStringInterpolator () { return createStringInterpolator$1; },\n get to () { return to; },\n get colors () { return colors$1; },\n get skipAnimation () { return skipAnimation; },\n get willAdvance () { return willAdvance; },\n assign: assign\n});\n\nconst startQueue = new Set();\nlet currentFrame = [];\nlet prevFrame = [];\nlet priority = 0;\nconst frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n\n advance,\n\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, other => other.priority > animation.priority), 0, animation);\n}\n\nfunction advance(dt) {\n const nextFrame = prevFrame;\n\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...parts) {\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\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\nconst $get = Symbol.for('FluidValue.get');\nconst $observers = Symbol.for('FluidValue.observers');\n\nconst hasFluidValue = arg => Boolean(arg && arg[$get]);\n\nconst getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg;\n\nconst getFluidObservers = target => target[$observers] || null;\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n let observers = target[$observers];\n\n if (observers) {\n observers.forEach(observer => {\n callFluidObserver(observer, event);\n });\n }\n}\n\nclass FluidValue {\n constructor(get) {\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n }\n\n}\n\nconst setFluidGetter = (target, get) => setHidden(target, $get, get);\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n let observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n let observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n const count = observers.size - 1;\n\n if (count) {\n observers.delete(observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nconst setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\nconst numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nconst unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, 'i');\nconst rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\nconst cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\n\nconst variableToRgba = input => {\n const [token, fallback] = parseCSSVariable(input);\n\n if (!token || isSSR()) {\n return input;\n }\n\n const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);\n\n if (value) {\n return value.trim();\n } else if (fallback && fallback.startsWith('--')) {\n const _value = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);\n\n if (_value) {\n return _value;\n } else {\n return input;\n }\n } else if (fallback && cssVariableRegex.test(fallback)) {\n return variableToRgba(fallback);\n } else if (fallback) {\n return fallback;\n }\n\n return input;\n};\n\nconst parseCSSVariable = current => {\n const match = cssVariableRegex.exec(current);\n if (!match) return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n};\n\nlet namedColorRegex;\n\nconst rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\n\nconst createStringInterpolator = config => {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\\\w)`, 'g') : /^\\b$/;\n const output = config.output.map(value => {\n return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n const keyframes = output.map(value => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n }));\n const interpolators = outputRanges.map(output => createInterpolator(_extends({}, config, {\n output\n })));\n return input => {\n var _output$find;\n\n const missingUnit = !unitRegex.test(output[0]) && ((_output$find = output.find(value => unitRegex.test(value))) == null ? void 0 : _output$find.replace(numberRegex, ''));\n let i = 0;\n return output[0].replace(numberRegex, () => `${interpolators[i++](input)}${missingUnit || ''}`).replace(rgbaRegex, rgbaRound);\n };\n};\n\nconst prefix = 'react-spring: ';\n\nconst once = fn => {\n const func = fn;\n let called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\n\nconst warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(`${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`);\n}\nconst warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || !isSSR() && cssVariableRegex.test(value) || value in (colors$1 || {}));\n}\n\nconst useIsomorphicLayoutEffect = isSSR() ? useEffect : useLayoutEffect;\n\nconst useIsMounted = () => {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n};\n\nfunction useForceUpdate() {\n const update = useState()[1];\n const isMounted = useIsMounted();\n return () => {\n if (isMounted.current) {\n update(Math.random());\n }\n };\n}\n\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState(() => ({\n inputs,\n result: getResult()\n }));\n const committed = useRef();\n const prevCache = committed.current;\n let cache = prevCache;\n\n if (cache) {\n const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(() => {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nconst useOnce = effect => useEffect(effect, emptyDeps);\nconst emptyDeps = [];\n\nfunction usePrev(value) {\n const prevRef = useRef();\n useEffect(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nconst useReducedMotion = () => {\n const [reducedMotion, setReducedMotion] = useState(null);\n useIsomorphicLayoutEffect(() => {\n const mql = window.matchMedia('(prefers-reduced-motion)');\n\n const handleMediaChange = e => {\n setReducedMotion(e.matches);\n assign({\n skipAnimation: e.matches\n });\n };\n\n handleMediaChange(mql);\n mql.addEventListener('change', handleMediaChange);\n return () => {\n mql.removeEventListener('change', handleMediaChange);\n };\n }, []);\n return reducedMotion;\n};\n\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, isSSR, noop, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useForceUpdate, useIsomorphicLayoutEffect, useMemoOne, useOnce, usePrev, useReducedMotion };\n","import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useIsomorphicLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n constructor() {\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n getPayload() {\n return this.payload || [];\n }\n\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n super();\n this.done = true;\n this.elapsedTime = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.v0 = void 0;\n this.durationProgress = 0;\n this._value = _value;\n\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n\n static create(value) {\n return new AnimatedValue(value);\n }\n\n getPayload() {\n return [this];\n }\n\n getValue() {\n return this._value;\n }\n\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n\n reset() {\n const {\n done\n } = this;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = void 0;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n\n static create(value) {\n return new AnimatedString(value);\n }\n\n getValue() {\n let value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n\n setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n super.reset();\n }\n\n}\n\nconst TreeContext = {\n dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n\n reset() {\n if (this.payload) {\n each(this.payload, node => node.reset());\n }\n }\n\n _makePayload(source) {\n if (source) {\n const payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n const payload = getPayload(source);\n\n if (payload) {\n each(payload, node => this.add(node));\n }\n }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n\n static create(source) {\n return new AnimatedArray(source);\n }\n\n getValue() {\n return this.source.map(node => node.getValue());\n }\n\n setValue(source) {\n const payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n\n super.setValue(source.map(makeAnimated));\n return true;\n }\n\n}\n\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\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\nconst withAnimated = (Component, host) => {\n const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && useCallback(value => {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n\n const callback = () => {\n const instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useIsomorphicLayoutEffect(() => {\n observerRef.current = observer;\n each(deps, dep => addFluidObserver(dep, observer));\n return () => {\n if (observerRef.current) {\n each(observerRef.current.deps, dep => removeFluidObserver(dep, observerRef.current));\n raf.cancel(observerRef.current.update);\n }\n };\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer = observerRef.current;\n each(observer.deps, dep => removeFluidObserver(dep, observer));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nclass PropsObserver {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n\n}\n\nfunction getAnimatedState(props, host) {\n const dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n applyAnimatedValues: _applyAnimatedValues = () => false,\n createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n getComponentProps: _getComponentProps = props => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n const animated = Component => {\n const displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n\n eachProp(components, (Component, key) => {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n","import { eachProp, is, toArray, isAnimatedString, Globals, getFluidValue, useIsomorphicLayoutEffect, each, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator, useIsomorphicLayoutEffect, useReducedMotion } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\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 callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nconst matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nconst resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nconst getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined;\n\nconst noopTransform = value => value;\n\nconst getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n\n const defaults = {};\n\n for (const key of keys) {\n const value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n\n return defaults;\n};\nconst DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nconst RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n const to = getForwardProps(props);\n\n if (to) {\n const out = {\n to\n };\n eachProp(props, (val, key) => key in to || (out[key] = val));\n return out;\n }\n\n return _extends({}, props);\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props) return true;\n\n return false;\n}\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl);\n ref == null ? void 0 : ref.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps, timeFrame = 1000) {\n useIsomorphicLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, ctrl => {\n each(ctrl.queue, props => {\n const memoizedDelayProp = props.delay;\n\n props.delay = key => delay + callProp(memoizedDelayProp || 0, key);\n });\n });\n ref.start();\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, ref => {\n const controllers = ref.current;\n\n if (controllers.length) {\n const queues = controllers.map(ctrl => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(controllers, (ctrl, i) => each(queues[i] || [], update => ctrl.queue.push(update)));\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = 2 * Math.PI / 3;\nconst c5 = 2 * Math.PI / 4.5;\n\nconst bounceOut = x => {\n const n1 = 7.5625;\n const d1 = 2.75;\n\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n};\n\nconst easings = {\n linear: x => x,\n easeInQuad: x => x * x,\n easeOutQuad: x => 1 - (1 - x) * (1 - x),\n easeInOutQuad: x => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,\n easeInCubic: x => x * x * x,\n easeOutCubic: x => 1 - Math.pow(1 - x, 3),\n easeInOutCubic: x => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,\n easeInQuart: x => x * x * x * x,\n easeOutQuart: x => 1 - Math.pow(1 - x, 4),\n easeInOutQuart: x => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,\n easeInQuint: x => x * x * x * x * x,\n easeOutQuint: x => 1 - Math.pow(1 - x, 5),\n easeInOutQuint: x => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,\n easeInSine: x => 1 - Math.cos(x * Math.PI / 2),\n easeOutSine: x => Math.sin(x * Math.PI / 2),\n easeInOutSine: x => -(Math.cos(Math.PI * x) - 1) / 2,\n easeInExpo: x => x === 0 ? 0 : Math.pow(2, 10 * x - 10),\n easeOutExpo: x => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),\n easeInOutExpo: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,\n easeInCirc: x => 1 - Math.sqrt(1 - Math.pow(x, 2)),\n easeOutCirc: x => Math.sqrt(1 - Math.pow(x - 1, 2)),\n easeInOutCirc: x => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,\n easeInBack: x => c3 * x * x * x - c1 * x * x,\n easeOutBack: x => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),\n easeInOutBack: x => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,\n easeInElastic: x => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),\n easeOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,\n easeInOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,\n easeInBounce: x => 1 - bounceOut(1 - x),\n easeOutBounce: bounceOut,\n easeInOutBounce: x => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2\n};\n\nconst defaults = _extends({}, config.default, {\n mass: 1,\n damping: 1,\n easing: easings.linear,\n clamp: false\n});\n\nclass AnimationConfig {\n constructor() {\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n }\n\n}\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (const key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n let {\n mass,\n frequency,\n damping\n } = config;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n const isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nconst emptyArray = [];\nclass Animation {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n\n}\n\nfunction scheduleProps(callId, {\n key,\n props,\n defaultProps,\n state,\n actions\n}) {\n return new Promise((resolve, reject) => {\n var _props$cancel;\n\n let delay;\n let timeout;\n let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n let pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0 && !Globals.skipAnimation) {\n state.delayed = true;\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n if (state.delayed) {\n state.delayed = false;\n }\n\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId,\n cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nconst getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some(result => result.cancelled) ? getCancelledResult(target.get()) : results.every(result => result.noop) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(result => result.finished));\nconst getNoopResult = value => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nconst getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nconst getCancelledResult = value => ({\n value,\n cancelled: true,\n finished: false\n});\n\nfunction runAsync(to, props, state, target) {\n const {\n callId,\n parentId,\n onRest\n } = props;\n const {\n asyncTo: prevTo,\n promise: prevPromise\n } = state;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to;\n const defaultProps = getDefaultProps(props, (value, key) => key === 'onRest' ? undefined : value);\n let preventBail;\n let bail;\n const bailPromise = new Promise((resolve, reject) => (preventBail = resolve, bail = reject));\n\n const bailIfEnded = bailSignal => {\n const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAniamtionSignal();\n return (async () => {\n if (Globals.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n\n bailIfEnded(bailSignal);\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, (value, key) => {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n const result = await target.start(props);\n bailIfEnded(bailSignal);\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n return result;\n })();\n };\n\n let result;\n\n if (Globals.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n\n try {\n let animating;\n\n if (is.arr(to)) {\n animating = (async queue => {\n for (const props of queue) {\n await animate(props);\n }\n })(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAniamtionSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n }\n\n if (is.fun(onRest)) {\n raf.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, t => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\nclass BailSignal extends Error {\n constructor() {\n super('An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n this.result = void 0;\n }\n\n}\nclass SkipAniamtionSignal extends Error {\n constructor() {\n super('SkipAnimationSignal');\n this.result = void 0;\n }\n\n}\n\nconst isFrameValue = value => value instanceof FrameValue;\nlet nextId$1 = 1;\nclass FrameValue extends FluidValue {\n constructor(...args) {\n super(...args);\n this.id = nextId$1++;\n this.key = void 0;\n this._priority = 0;\n }\n\n get priority() {\n return this._priority;\n }\n\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n\n to(...args) {\n return Globals.to(this, args);\n }\n\n interpolate(...args) {\n deprecateInterpolate();\n return Globals.to(this, args);\n }\n\n toJSON() {\n return this.get();\n }\n\n observerAdded(count) {\n if (count == 1) this._attach();\n }\n\n observerRemoved(count) {\n if (count == 0) this._detach();\n }\n\n _attach() {}\n\n _detach() {}\n\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value,\n idle\n });\n }\n\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority\n });\n }\n\n}\n\nconst $P = Symbol.for('SpringPhase');\nconst HAS_ANIMATED = 1;\nconst IS_ANIMATING = 2;\nconst IS_PAUSED = 4;\nconst hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0;\nconst isAnimating = target => (target[$P] & IS_ANIMATING) > 0;\nconst isPaused = target => (target[$P] & IS_PAUSED) > 0;\nconst setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nconst setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\nclass SpringValue extends FrameValue {\n constructor(arg1, arg2) {\n super();\n this.key = void 0;\n this.animation = new Animation();\n this.queue = void 0;\n this.defaultProps = {};\n this._state = {\n paused: false,\n delayed: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._pendingCalls = new Set();\n this._lastCallId = 0;\n this._lastToId = 0;\n this._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props.default)) {\n props.default = true;\n }\n\n this.start(props);\n }\n }\n\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n\n get goal() {\n return getFluidValue(this.animation.to);\n }\n\n get velocity() {\n const node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(node => node.lastVelocity || 0);\n }\n\n get hasAnimated() {\n return hasAnimated(this);\n }\n\n get isAnimating() {\n return isAnimating(this);\n }\n\n get isPaused() {\n return isPaused(this);\n }\n\n get isDelayed() {\n return this._state.delayed;\n }\n\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let {\n config,\n toValues\n } = anim;\n const payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach((node, i) => {\n if (node.done) return;\n const to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n let finished = anim.immediate;\n let position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n let elapsed = node.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n let velocity;\n\n if (!is.und(config.duration)) {\n let p = 1;\n\n if (config.duration > 0) {\n if (this._memoizedDuration !== config.duration) {\n this._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n const decay = config.decay === true ? 0.998 : config.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) < 0.1;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n const precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n const restVelocity = config.restVelocity || precision / 10;\n const bounceFactor = config.clamp ? 0 : config.bounce;\n const canBounce = !is.und(bounceFactor);\n const isGrowing = from == to ? node.v0 > 0 : from < to;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n const springForce = -config.tension * 0.000001 * (position - to);\n const dampingForce = -config.friction * 0.001 * velocity;\n const acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n const node = getAnimated(this);\n const currVal = node.getValue();\n\n if (idle) {\n const finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n\n set(value) {\n raf.batchedUpdates(() => {\n this._stop();\n\n this._focus(value);\n\n this._set(value);\n });\n return this;\n }\n\n pause() {\n this._update({\n pause: true\n });\n }\n\n resume() {\n this._update({\n pause: false\n });\n }\n\n finish() {\n if (isAnimating(this)) {\n const {\n to,\n config\n } = this.animation;\n raf.batchedUpdates(() => {\n this._onStart();\n\n if (!config.decay) {\n this._set(to, false);\n }\n\n this._stop();\n });\n }\n\n return this;\n }\n\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n\n start(to, arg2) {\n let queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(props => {\n const up = this._update(props);\n\n return up;\n })).then(results => getCombinedResult(this, results));\n }\n\n stop(cancel) {\n const {\n to\n } = this.animation;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(() => this._stop(to, cancel));\n return this;\n }\n\n reset() {\n this._update({\n reset: true\n });\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n\n _prepareNode(props) {\n const key = this.key || '';\n let {\n to,\n from\n } = props;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n const range = {\n to,\n from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) [to, from] = [from, to];\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n\n _update(_ref, isLoop) {\n let props = _extends({}, _ref);\n\n const {\n key,\n defaultProps\n } = this;\n if (props.default) Object.assign(defaultProps, getDefaultProps(props, (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n const range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(this, 'onPause', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n\n if (isAnimating(this)) {\n this._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(this, 'onResume', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(result => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n const hasToProp = !is.und(range.to);\n const hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n const {\n key,\n defaultProps,\n animation: anim\n } = this;\n const {\n to: prevTo,\n from: prevFrom\n } = anim;\n let {\n to = prevTo,\n from = prevFrom\n } = range;\n\n if (hasFromProp && !hasToProp && (!props.default || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) [to, from] = [from, to];\n const hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n const hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n const hasAsyncTo = isAsyncTo(props.to);\n const {\n config\n } = anim;\n const {\n decay,\n velocity\n } = config;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n let node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n const reset = is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key);\n const value = reset ? from : this.get();\n const goal = computeGoal(to);\n const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n const nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`);\n }\n }\n\n const goalType = node.constructor;\n let started = hasFluidValue(to);\n let finished = false;\n\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n const {\n onRest\n } = anim;\n each(ACTIVE_EVENTS, type => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(() => {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, this);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, this);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n\n _focus(value) {\n const anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n\n _attach() {\n let priority = 0;\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n\n _detach() {\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n\n _set(arg, idle = true) {\n const value = getFluidValue(arg);\n\n if (!is.und(value)) {\n const oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n\n _onStart() {\n const anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n super._onChange(value, idle);\n }\n\n _start() {\n const anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(node => node.lastPosition);\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n\n _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each(anim.values, node => {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n\n}\n\nfunction checkFinished(target, to) {\n const goal = computeGoal(to);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props, loop = props.loop, to = props.to) {\n let loopRet = callProp(loop);\n\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop,\n default: false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset\n }, overrides));\n }\n}\nfunction createUpdate(props) {\n const {\n to,\n from\n } = props = inferTo(props);\n const keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update = createUpdate(props);\n\n if (is.und(update.default)) {\n update.default = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, (value, key) => value != null && keys.add(key));\n}\n\nconst ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type, ...args) {\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args);\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args);\n}\n\nconst BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nlet nextId = 1;\nclass Controller {\n constructor(props, flush) {\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n default: true\n }, props));\n }\n }\n\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every(spring => {\n return spring.idle && !spring.isDelayed && !spring.isPaused;\n });\n }\n\n get item() {\n return this._item;\n }\n\n set item(item) {\n this._item = item;\n }\n\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n\n set(values) {\n for (const key in values) {\n const value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n\n start(props) {\n let {\n queue\n } = this;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(spring => spring.stop(!!arg));\n }\n\n return this;\n }\n\n pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].pause());\n }\n\n return this;\n }\n\n resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].resume());\n }\n\n return this;\n }\n\n each(iterator) {\n eachProp(this.springs, iterator);\n }\n\n _onFrame() {\n const {\n onStart,\n onChange,\n onRest\n } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, ([onStart, result]) => {\n result.value = this.get();\n onStart(result, this, this._item);\n });\n }\n\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, ([onChange, result]) => {\n result.value = values;\n onChange(result, this, this._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, ([onRest, result]) => {\n result.value = values;\n onRest(result, this, this._item);\n });\n }\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n\n}\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(props => flushUpdate(ctrl, props))).then(results => getCombinedResult(ctrl, results));\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const {\n keys,\n to,\n from,\n loop,\n onRest,\n onResolve\n } = props;\n const defaults = is.obj(props.default) && props.default;\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n const asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, key => {\n const handler = props[key];\n\n if (is.fun(handler)) {\n const queue = ctrl['_events'][key];\n\n props[key] = ({\n finished,\n cancelled\n }) => {\n const result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n const state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n const promises = (keys || Object.keys(ctrl.springs)).map(key => ctrl.springs[key].start(props));\n const cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n\n start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n\n }\n }));\n }\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to);\n\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n\n if (onResolve) {\n raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), props => {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, key => {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, key => {\n const spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, props => {\n prepareSprings(ctrl.springs, props, key => {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$3 = [\"children\"];\nconst SpringContext = _ref => {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({\n pause,\n immediate\n }), [pause, immediate]);\n const {\n Provider\n } = ctx;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\nconst ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nconst SpringRef = () => {\n const current = [];\n\n const SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = _getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef.delete = function (ctrl) {\n const i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n each(current, ctrl => ctrl.pause(...arguments));\n return this;\n };\n\n SpringRef.resume = function () {\n each(current, ctrl => ctrl.resume(...arguments));\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, ctrl => ctrl.set(values));\n };\n\n SpringRef.start = function (props) {\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = this._getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n each(current, ctrl => ctrl.stop(...arguments));\n return this;\n };\n\n SpringRef.update = function (props) {\n each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n\n const _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n const propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(() => ({\n ctrls: [],\n queue: [],\n\n flush(ctrl, updates) {\n const springs = getSprings(ctrl, updates);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(key => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(resolve => {\n setSprings(ctrl, springs);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n\n }), []);\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each(ctrls.current.slice(length, prevLength), ctrl => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (update) {\n updates[i] = declareUpdate(update);\n }\n }\n }\n\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const {\n queue\n } = state;\n\n if (queue.length) {\n state.queue = [];\n each(queue, cb => cb());\n }\n\n each(ctrls.current, (ctrl, i) => {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n default: context\n });\n }\n\n const update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(() => () => {\n each(state.ctrls, ctrl => ctrl.stop(true));\n });\n const values = springs.map(x => _extends({}, x));\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n const isFn = is.fun(props);\n const [[values], ref] = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps);\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nconst initSpringRef = () => SpringRef();\n\nconst useSpringRef = () => useState(initSpringRef)[0];\n\nfunction useTrail(length, propsArg, deps) {\n var _passedRef;\n\n const propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n let reverse = true;\n let passedRef = undefined;\n const result = useSprings(length, (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n passedRef = props.ref;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n const ref = (_passedRef = passedRef) != null ? _passedRef : result[1];\n useIsomorphicLayoutEffect(() => {\n each(ref.current, (ctrl, i) => {\n const parent = ref.current[i + (reverse ? 1 : -1)];\n\n if (parent) {\n ctrl.start({\n to: parent.springs\n });\n } else {\n ctrl.start();\n }\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n ref['_getProps'] = (propsArg, ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n ref['start'] = propsArg => {\n const results = [];\n each(ref.current, (ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n const parent = ref.current[i + (reverse ? 1 : -1)];\n\n if (parent) {\n results.push(ctrl.start(_extends({}, props, {\n to: parent.springs\n })));\n } else {\n results.push(ctrl.start(_extends({}, props)));\n }\n });\n return results;\n };\n\n return result[0];\n}\n\nlet TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n const propsFn = is.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n exitBeforeEnter = false,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const items = toArray(data);\n const transitions = [];\n const usedTransitions = useRef(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useIsomorphicLayoutEffect(() => {\n usedTransitions.current = transitions;\n });\n useOnce(() => {\n each(transitions, t => {\n ref == null ? void 0 : ref.add(t.ctrl);\n t.ctrl.ref = ref;\n });\n return () => {\n each(usedTransitions.current, t => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useIsomorphicLayoutEffect(() => each(expired, ({\n ctrl,\n item,\n key\n }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n }));\n const reused = [];\n if (prevTransitions) each(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n let i = -1;\n const {\n leave\n } = propsFn ? propsFn() : props;\n each(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n\n let delay = -trail;\n const forceUpdate = useForceUpdate();\n const defaultProps = getDefaultProps(props);\n const changes = new Map();\n const exitingTransitions = useRef(new Map());\n const forceChange = useRef(false);\n each(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to;\n let phase;\n let propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to\n };\n\n if (!to.config) {\n const config = propsConfig || defaultProps.config;\n to.config = callProp(config, t.item, i, phase);\n }\n\n delay += trail;\n\n const payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n const _p = propsFn ? propsFn() : props;\n\n const from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n const {\n onResolve\n } = payload;\n\n payload.onResolve = result => {\n callProp(onResolve, result);\n const transitions = usedTransitions.current;\n const t = transitions.find(t => t.key === key);\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n const idle = transitions.every(t => t.ctrl.idle);\n\n if (t.phase == TransitionPhase.LEAVE) {\n const expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(t => t.expired)) {\n exitingTransitions.current.delete(t);\n\n if (exitBeforeEnter) {\n forceChange.current = true;\n }\n\n forceUpdate();\n }\n }\n };\n\n const springs = getSprings(t.ctrl, payload);\n\n if (phase === TransitionPhase.LEAVE && exitBeforeEnter) {\n exitingTransitions.current.set(t, {\n phase,\n springs,\n payload\n });\n } else {\n changes.set(t, {\n phase,\n springs,\n payload\n });\n }\n });\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n if (hasContext) {\n each(transitions, t => {\n t.ctrl.start({\n default: context\n });\n });\n }\n }, [context]);\n each(changes, (_, t) => {\n if (exitingTransitions.current.size) {\n const ind = transitions.findIndex(state => state.key === t.key);\n transitions.splice(ind, 1);\n }\n });\n useIsomorphicLayoutEffect(() => {\n each(exitingTransitions.current.size ? exitingTransitions.current : changes, ({\n phase,\n payload\n }, t) => {\n const {\n ctrl\n } = t;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n default: context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if ((ctrl.ref || ref) && !forceChange.current) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n\n if (forceChange.current) {\n forceChange.current = false;\n }\n }\n }\n });\n }, reset ? void 0 : deps);\n\n const renderTransitions = render => React.createElement(React.Fragment, null, transitions.map((t, i) => {\n const {\n springs\n } = changes.get(t) || t.ctrl;\n const elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nlet nextKey = 1;\n\nfunction getKeys(items, {\n key,\n keys = key\n}, prevTransitions) {\n if (keys === null) {\n const reused = new Set();\n return items.map(item => {\n const t = prevTransitions && prevTransitions.find(t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t));\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nconst _excluded$2 = [\"children\"];\nfunction Spring(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nconst _excluded$1 = [\"items\", \"children\"];\nfunction Trail(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nconst _excluded = [\"items\", \"children\"];\nfunction Transition(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nclass Interpolation extends FrameValue {\n constructor(source, args) {\n super();\n this.key = void 0;\n this.idle = true;\n this.calc = void 0;\n this._active = new Set();\n this.source = source;\n this.calc = createInterpolator(...args);\n\n const value = this._get();\n\n const nodeType = getAnimatedType(value);\n setAnimated(this, nodeType.create(value));\n }\n\n advance(_dt) {\n const value = this._get();\n\n const oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n\n _get() {\n const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc(...inputs);\n }\n\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), node => {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n\n _attach() {\n let priority = 1;\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n addFluidObserver(source, this);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n\n _detach() {\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, this);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), 0);\n }\n }\n\n}\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), node => {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nconst to = (source, ...args) => new Interpolation(source, args);\nconst interpolate = (source, ...args) => (deprecateInterpolate(), new Interpolation(source, args));\n\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nconst update = frameLoop.advance;\n\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, easings, inferTo, interpolate, to, update, useChain, useSpring, useSpringRef, useSprings, useTrail, useTransition };\n","import { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"];\nconst isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n const isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n const _ref = props,\n {\n style,\n children,\n scrollTop,\n scrollLeft\n } = _ref,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase())));\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (let name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n}\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nconst _excluded$1 = [\"x\", \"y\", \"z\"];\nconst domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nconst pxTransforms = /^(translate)/;\nconst degTransforms = /^(rotate|skew)/;\n\nconst addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\n\nconst isValueIdentity = (value, id) => is.arr(value) ? value.every(v => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(_ref) {\n let {\n x,\n y,\n z\n } = _ref,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const inputs = [];\n const transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(xyz => [`translate3d(${xyz.map(v => addUnit(v, 'px')).join(',')})`, isValueIdentity(xyz, 0)]);\n }\n\n eachProp(style, (value, key) => {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(transform => [transform, transform === '']);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n const unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? ([x, y, z, deg]) => [`rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0)] : input => [`${key}(${input.map(v => addUnit(v, unit)).join(',')})`, isValueIdentity(input, key.startsWith('scale') ? 1 : 0)]);\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n super(style);\n }\n\n}\n\nclass FluidTransform extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this._value = null;\n this.inputs = inputs;\n this.transforms = transforms;\n }\n\n get() {\n return this._value || (this._value = this._get());\n }\n\n _get() {\n let transform = '';\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue));\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n\n observerAdded(count) {\n if (count == 1) each(this.inputs, input => each(input, value => hasFluidValue(value) && addFluidObserver(value, this)));\n }\n\n observerRemoved(count) {\n if (count == 0) each(this.inputs, input => each(input, value => hasFluidValue(value) && removeFluidObserver(value, this)));\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n\n}\n\nconst primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nconst _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nconst host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: style => new AnimatedStyle(style),\n getComponentProps: _ref => {\n let props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nconst animated = host.animated;\n\nexport { animated as a, animated };\n","import { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nconst lazyLoadDrawerIcons: (iconName: string) => Promise = async (iconName) => {\n const icon = (\n await import(\n /* webpackChunkName: 'collapsible-drawer-icons' */\n /* webpackPrefetch: true */\n `./${iconName}.svg`\n )\n ).default;\n return icon as string;\n};\n\nconst getIconLabel = (isOpen: boolean) => {\n return isOpen ? 'collapse' : 'expand';\n};\n\nconst IconObject = styled.object`\n pointer-events: none;\n`;\n\ninterface DrawerIconProps {\n isOpen: boolean;\n}\n\nexport const DrawerIcon = ({ isOpen }: DrawerIconProps) => {\n const [iconString, setIconString] = useState();\n\n useEffect(() => {\n const asyncLoadIcon = async () => {\n setIconString(await lazyLoadDrawerIcons(getIconLabel(isOpen)));\n };\n\n asyncLoadIcon();\n }, [isOpen]);\n\n return (\n \n );\n};\n","import {\n forwardRef,\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { Box, Flex } from 'reflexbox/styled-components';\nimport styled, { FlattenSimpleInterpolation } from 'styled-components';\n\nimport { Overlay } from '@blueprintjs/core';\nimport { animated, SpringValue, useSpring, useTransition } from '@react-spring/web';\n\nimport { Colors } from '../colors';\nimport { useDebouncedCallback } from '../hooks';\nimport { AuroraIcon, AuroraIconType } from '../icon';\nimport { DrawerIcon } from './drawer-icon';\n\nconst DRAWER_PADDING_X = 24;\nconst BUTTON_BORDER_RADIUS = 6;\nconst BUTTON_CLASS = 'collapsible-drawer-button';\nconst BUTTON_CLOSED_CLASS = 'collapsible-drawer-button--closed';\nconst BUTTON_OPENED_CLASS = 'collapsible-drawer-button--opened';\nconst DRAWER_BODY_CLASS = 'collapsible-drawer-body';\nconst DRAWER_BUTTON_ICON_CLASS = 'drawer-button-icon';\n\nconst StyledDrawerContainer = styled(Flex)`\n background-color: ${Colors.WHITE};\n min-height: 100%;\n max-height: 100%;\n width: 100%;\n flex-direction: column;\n border-radius: ${BUTTON_BORDER_RADIUS}px;\n overflow: hidden;\n\n .${DRAWER_BODY_CLASS} {\n overflow-y: auto;\n height: 100%;\n padding: 0 ${DRAWER_PADDING_X}px;\n flex: 1 1 0;\n position: relative;\n }\n`;\n\nconst StyleOverrideContainer = styled.div<{ styleOverrides?: FlattenSimpleInterpolation }>`\n ${({ styleOverrides }) => styleOverrides};\n`;\n\nconst StyledDrawerButton = styled(animated.div)`\n width: 100%;\n border-radius: ${BUTTON_BORDER_RADIUS}px;\n background-color: ${Colors.GRAY_800};\n padding: 18px ${DRAWER_PADDING_X}px;\n color: ${Colors.WHITE};\n margin: 0 auto;\n cursor: pointer;\n`;\n\nconst IconContainer = styled.button`\n background-color: ${Colors.WHITE};\n color: ${Colors.GRAY_800};\n border-radius: ${BUTTON_BORDER_RADIUS}px;\n width: 50px;\n height: 50px;\n justify-content: center;\n align-items: center;\n border: none;\n padding-left: 0;\n padding-right: 0;\n cursor: pointer;\n flex-shrink: 0;\n`;\n\nconst DrawerFixedContainer = styled(animated.div)`\n height: 100%;\n position: fixed;\n`;\n\n// Builds the animations for the drawer opening and closing\nfunction useBuildAnimations(\n isOpen: boolean,\n sourceRef: MutableRefObject,\n isPaused: boolean,\n onDestroyed: () => void,\n onStart: () => void,\n onRest: () => void,\n) {\n const drawerTransition = useTransition<\n boolean,\n {\n clipPath: SpringValue;\n }\n >(isOpen, {\n enter: {\n clipPath: 0,\n width: '100%',\n x: 0,\n y: 0,\n },\n from: () => {\n const refCoordinates = sourceRef.current.getBoundingClientRect();\n return {\n clipPath: window.innerHeight - refCoordinates.height,\n width: `${(refCoordinates.width / window.innerWidth) * 100}%`,\n x: refCoordinates.left,\n y: refCoordinates.top,\n };\n },\n immediate: CYPRESS_BUILD,\n leave: () => {\n const refCoordinates = sourceRef.current.getBoundingClientRect();\n return {\n clipPath: window.innerHeight - refCoordinates.height,\n width: `${(refCoordinates.width / window.innerWidth) * 100}%`,\n x: refCoordinates.left,\n y: refCoordinates.top,\n };\n },\n onDestroyed,\n onRest,\n onStart,\n pause: isPaused,\n });\n\n const buttonAnimation = useSpring({\n from: {\n borderBottomLeftRadius: `${BUTTON_BORDER_RADIUS}px`,\n borderBottomRightRadius: `${BUTTON_BORDER_RADIUS}px`,\n },\n immediate: CYPRESS_BUILD,\n pause: isPaused,\n reverse: !isOpen,\n to: {\n borderBottomLeftRadius: '0px',\n borderBottomRightRadius: '0px',\n },\n });\n\n return {\n buttonAnimation,\n drawerTransition,\n };\n}\n\nfunction preventScrollOnBodyAndElements(selectors: string[] = []) {\n const scrollBarSize =\n window.innerWidth - (document.querySelector('html') as HTMLElement).clientWidth;\n\n const existingPaddingSize = parseInt(window.getComputedStyle(document.body).paddingRight, 10);\n\n // Add padding to offset the scrollbar disappearing\n document.body.style.paddingRight = `${scrollBarSize + existingPaddingSize}px`;\n document.body.style.overflow = 'hidden';\n\n selectors.forEach((selector) => {\n const element = document.querySelector(selector) as HTMLElement;\n\n if (element) {\n const elementScrollBarSize = element.offsetWidth - element.clientWidth;\n const existingElementPaddingSize = parseInt(\n window.getComputedStyle(element).paddingRight,\n 10,\n );\n element.style.overflow = 'hidden';\n element.style.paddingRight = `${elementScrollBarSize + existingElementPaddingSize}px`;\n } else {\n console.warn(`Could not find ${selector}`);\n }\n });\n}\n\nfunction enableScrollOnBodyAndElements(selectors: string[] = []) {\n document.body.style.paddingRight = '';\n document.body.style.overflow = '';\n\n selectors.forEach((selector) => {\n const element = document.querySelector(selector) as HTMLElement;\n\n if (element) {\n element.style.overflow = '';\n element.style.paddingRight = '';\n } else {\n console.warn(`Could not find ${selector}`);\n }\n });\n}\n\ninterface DrawerButtonProps {\n onClick: () => void;\n isOpen: boolean;\n buttonAnimationStyles?: { [key: string]: SpringValue };\n children?: ReactNode;\n 'data-testid'?: string;\n useAnimatedDrawerIcon: boolean;\n}\n\nconst DrawerButton = forwardRef(\n (\n {\n onClick,\n buttonAnimationStyles,\n children,\n isOpen,\n 'data-testid': testId,\n useAnimatedDrawerIcon,\n },\n ref,\n ) => {\n return (\n \n \n {children}\n \n {useAnimatedDrawerIcon ? (\n \n ) : (\n \n )}\n \n \n \n );\n },\n);\n\n// Use absolute positioning to make sizing of component inside\n// more reliable\nconst DrawerBodyAnimatedDiv = styled(animated.div)`\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n`;\n\nconst DrawerBody = ({ children }: { children: JSX.Element }) => {\n const drawerBodyAnimation = useSpring({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n });\n return {children};\n};\n\ninterface DrawerContainerProps {\n children: JSX.Element;\n sourceRef: MutableRefObject;\n closeDrawer: () => void;\n isOpen: boolean;\n onDestroyed: () => void;\n buttonLabel: ReactNode;\n openButtonLabel?: ReactNode;\n elementsToDisableScrollOn?: string[];\n 'data-testid'?: string;\n useAnimatedDrawerIcon: boolean;\n}\n\nconst DrawerContainer = ({\n children,\n closeDrawer,\n 'data-testid': testId,\n sourceRef,\n isOpen,\n onDestroyed,\n buttonLabel,\n elementsToDisableScrollOn,\n openButtonLabel,\n useAnimatedDrawerIcon,\n}: DrawerContainerProps) => {\n if (!sourceRef.current) {\n throw new Error('No source ref');\n }\n\n // Initial render lets us render the elements in the non-open state first\n // so we can smoothly transition\n const [hasRendered, setHasRendered] = useState(false);\n\n useLayoutEffect(() => {\n setHasRendered(true);\n }, []);\n\n useEffect(() => {\n return () => enableScrollOnBodyAndElements(elementsToDisableScrollOn);\n }, [elementsToDisableScrollOn]);\n\n const [isAnimating, setIsAnimating] = useState(false);\n\n const { drawerTransition, buttonAnimation } = useBuildAnimations(\n isOpen,\n sourceRef as MutableRefObject,\n !hasRendered,\n () => {\n // kinda redudant but makes it more obvious\n enableScrollOnBodyAndElements(elementsToDisableScrollOn);\n onDestroyed();\n },\n () => {\n if (isOpen) {\n preventScrollOnBodyAndElements(elementsToDisableScrollOn);\n }\n setIsAnimating(true);\n },\n () => {\n setIsAnimating(false);\n },\n );\n\n return drawerTransition(\n (style, open) =>\n open && (\n \n `inset(0 0 ${value}px 0 round 0 0 ${BUTTON_BORDER_RADIUS}px ${BUTTON_BORDER_RADIUS}px)`,\n ),\n }}\n >\n \n \n \n {openButtonLabel ? (\n \n {isOpen && openButtonLabel && hasRendered ? openButtonLabel : buttonLabel}\n \n ) : (\n buttonLabel\n )}\n \n \n \n {/* Doesn't render until the drawer is fully open to increase performance */}\n {!isAnimating && {children}}\n \n \n \n ),\n );\n};\n\ninterface DrawerProps {\n children: JSX.Element;\n sourceRef: MutableRefObject;\n closeDrawer: () => void;\n isOpen: boolean;\n buttonLabel: ReactNode;\n openButtonLabel?: ReactNode;\n elementsToDisableScrollOn?: string[];\n styleOverrides?: FlattenSimpleInterpolation;\n hideOverflowOn?: string[];\n useAnimatedDrawerIcon: boolean;\n}\n\nconst Drawer = ({\n children,\n isOpen,\n sourceRef,\n closeDrawer,\n styleOverrides,\n ...props\n}: DrawerProps) => {\n /**\n * Offsets the unmounting until the animation is done\n */\n const [internalOpenState, setInternalOpenState] = useState(isOpen);\n\n useEffect(() => {\n if (isOpen) {\n setInternalOpenState(true);\n }\n }, [isOpen]);\n\n const animationDoneCallback = useCallback(() => {\n setInternalOpenState(false);\n }, []);\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\n/**\n * Helper element that transitions between children.\n *\n * The component works by animating between two children elements. When a\n * new `transitionKey` is passed in, the component stores the new child in\n * currently unused child ref, measures the new child, and then transitions\n * between the two\n */\nconst TransitionChildren = ({\n children,\n transitionKey,\n}: {\n children: ReactNode;\n transitionKey: unknown;\n}) => {\n const previousKey = useRef(transitionKey);\n const trueChild = useRef(children);\n const falseChild = useRef();\n const [showTrueChild, setShowTrueChild] = useState(true);\n const [{ currentHeight, targetHeight }, setHeights] = useState<{\n currentHeight: number;\n targetHeight: number;\n }>({\n currentHeight: 0,\n targetHeight: 0,\n });\n const [gettingDimensions, setGettingDimensions] = useState(true);\n const transition = useTransition(showTrueChild, {\n enter: {\n opacity: 1,\n },\n from: {\n opacity: 0,\n },\n immediate: CYPRESS_BUILD,\n pause: gettingDimensions,\n to: {\n opacity: 0,\n },\n });\n\n const spring = useSpring({\n from: {\n height: currentHeight,\n },\n immediate: CYPRESS_BUILD,\n pause: gettingDimensions,\n reset: showTrueChild,\n to: {\n height: targetHeight,\n },\n });\n\n useEffect(() => {\n if (previousKey.current !== transitionKey) {\n if (showTrueChild) {\n falseChild.current = children;\n } else {\n trueChild.current = children;\n }\n previousKey.current = transitionKey;\n setShowTrueChild(!showTrueChild);\n setGettingDimensions(true);\n }\n }, [showTrueChild, transitionKey, children]);\n\n if (gettingDimensions) {\n return (\n {\n if (node) {\n const dimensions = node.getBoundingClientRect();\n const newTargetHeight = dimensions.height;\n let newCurrentHeight = targetHeight;\n\n if (!currentHeight) {\n newCurrentHeight = dimensions.height;\n }\n\n setHeights({\n currentHeight: newCurrentHeight,\n targetHeight: newTargetHeight,\n });\n\n setGettingDimensions(false);\n }\n }}\n >\n {children}\n \n );\n }\n\n return transition((style, state) => {\n return state ? (\n \n {trueChild.current}\n \n ) : (\n \n {falseChild.current}\n \n );\n });\n};\n\nexport interface CollapsibleDrawerProps {\n children: JSX.Element;\n buttonLabel: ReactNode;\n openButtonLabel?: ReactNode;\n elementsToDisableScrollOn?: string[];\n // Needed due to how the drawer places items using a portal\n styleOverrides?: FlattenSimpleInterpolation;\n 'data-testid-close'?: string;\n 'data-testid-open'?: string;\n isDefaultOpen?: boolean;\n onSetOpen?: (isOpen: boolean) => void;\n useAnimatedDrawerIcon?: boolean;\n}\n\nexport const CollapsibleDrawer = ({\n isDefaultOpen = false,\n children,\n buttonLabel,\n openButtonLabel,\n styleOverrides,\n elementsToDisableScrollOn,\n 'data-testid-close': closeTestId,\n 'data-testid-open': openTestId,\n onSetOpen,\n useAnimatedDrawerIcon = false,\n}: CollapsibleDrawerProps) => {\n const [isOpen, setIsOpen] = useState(isDefaultOpen);\n const buttonRef = useRef(null);\n\n return (\n <>\n \n {\n setIsOpen(true);\n onSetOpen?.(true);\n },\n [onSetOpen],\n 200,\n )}\n useAnimatedDrawerIcon={useAnimatedDrawerIcon}\n >\n {buttonLabel}\n \n \n {\n setIsOpen(false);\n onSetOpen?.(false);\n },\n [onSetOpen],\n 200,\n )}\n data-testid={closeTestId}\n elementsToDisableScrollOn={elementsToDisableScrollOn}\n isOpen={isOpen}\n openButtonLabel={openButtonLabel}\n sourceRef={buttonRef}\n styleOverrides={styleOverrides}\n useAnimatedDrawerIcon={useAnimatedDrawerIcon}\n >\n {children}\n \n \n );\n};\n\nexport const CollapsibleDrawerClasses = {\n BUTTON_CLASS,\n BUTTON_CLOSED_CLASS,\n BUTTON_OPENED_CLASS,\n DRAWER_BODY_CLASS,\n DRAWER_BUTTON_ICON_CLASS,\n};\n","import { useEffect, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Flex } from 'reflexbox/styled-components';\nimport styled, { css } from 'styled-components';\n\nimport {\n CadContextProvider,\n CadStatus,\n useCadContext,\n useLeadCaptureCad,\n} from '@aurorasolar/cad-core';\nimport { CAD_CONTAINER_TESTID } from '@aurorasolar/cad-core/src/cad-wrapper';\nimport { CadLoadingPage } from '@aurorasolar/cad-core/src/cad-wrapper/cad-loading-page';\nimport { CenteringGuide } from '@aurorasolar/common-core/src/centering-guide';\nimport {\n CollapsibleDrawer,\n CollapsibleDrawerClasses,\n} from '@aurorasolar/common-core/src/collapsible-drawer';\nimport { Colors } from '@aurorasolar/common-core/src/colors';\nimport { AuroraIconType } from '@aurorasolar/common-core/src/icon';\nimport { Analytics, AnalyticsEventTypes, useAppModule } from '@aurorasolar/common-module-loader';\nimport { useInterceptMouse } from '@aurorasolar/common-shared-domain';\n\nimport { PortalContainer, PoweredByAurora } from '../../../shared-components';\nimport { LCAIText } from '../../../typography/lcai-text/lcai-text';\nimport { Z_ORDER } from '../../../utils/constants';\n\nconst CadWrapper = styled.div`\n position: relative;\n height: 100%;\n`;\n\nconst CadContainer = styled.div`\n position: absolute;\n inset: 0;\n`;\n\nconst NonInteractiveCad = styled.div`\n pointer-events: none;\n`;\n\nconst AddressWithEllipsis = styled(LCAIText)`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n margin-right: 16px;\n`;\n\nconst DrawerContainer = styled.div`\n position: absolute;\n bottom: 40px;\n width: 100%;\n padding: 0 24px;\n\n @media screen and (orientation: portrait) {\n transform: translateY(50%);\n bottom: 0;\n }\n`;\n\nconst DrawerStyles = css`\n z-index: ${Z_ORDER.CAD};\n\n .${CollapsibleDrawerClasses.BUTTON_CLASS} {\n --transition-time: 0.2s;\n\n background-color: ${Colors.WHITE};\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);\n transition: padding var(--transition-time) ease-in;\n\n .${CollapsibleDrawerClasses.DRAWER_BUTTON_ICON_CLASS} {\n background-color: ${Colors.BLACK};\n transition: width var(--transition-time) ease-in, height var(--transition-time) ease-in,\n color var(--transition-time) ease-in, background-color var(--transition-time) ease-in;\n }\n }\n\n .${CollapsibleDrawerClasses.BUTTON_CLASS}.${CollapsibleDrawerClasses.BUTTON_OPENED_CLASS} {\n --transition-time: 0.2s;\n\n padding: 12px 24px;\n\n .${CollapsibleDrawerClasses.DRAWER_BUTTON_ICON_CLASS} {\n background-color: ${Colors.BLACK};\n }\n }\n`;\n\ninterface CADPortalProps {\n container: HTMLElement;\n projectId: string;\n showCenteringGuide?: boolean;\n}\n\nconst CADPortal = ({ container, projectId, showCenteringGuide }: CADPortalProps) => {\n const { status } = useCadContext();\n const analytics = useAppModule(Analytics);\n\n const [cadContainer, setCadContainer] = useState(null);\n const setRef = (ref: HTMLDivElement) => setCadContainer(ref);\n\n useLeadCaptureCad({\n cadContainer,\n hasOrbitMode: true,\n id: projectId,\n });\n\n const wasClicked = useInterceptMouse({\n cadDomNode: useCadContext()?.domNode?.querySelector('canvas'),\n });\n\n useEffect(() => {\n if (wasClicked) {\n analytics?.track(AnalyticsEventTypes.LeadCaptureClickedCADView, {\n project_id: projectId,\n });\n }\n }, [wasClicked, analytics, projectId]);\n\n return createPortal(\n <>\n \n {status === CadStatus.Loading && }\n \n {showCenteringGuide && !wasClicked && (\n \n )}\n \n ,\n container,\n );\n};\n\ninterface CadProps {\n address: string;\n projectId: string;\n solarPanelCount: number;\n}\n\nexport function Cad({ address, projectId, solarPanelCount }: CadProps) {\n const [renderFullScreen, setRenderFullScreen] = useState(false);\n const switchView = () => setRenderFullScreen(!renderFullScreen);\n const container = useMemo(() => document.createElement('div'), []);\n\n return (\n \n \n \n \n \n \n \n \n Explore your 3D model\n \n \n {address}\n \n \n }\n data-testid-close=\"lcai-cad-toggle-close\"\n data-testid-open=\"lcai-cad-toggle-open\"\n onSetOpen={switchView}\n openButtonLabel={\n \n \n Your solar model\n \n \n {solarPanelCount} solar panels\n \n \n }\n styleOverrides={DrawerStyles}\n useAnimatedDrawerIcon\n >\n \n \n \n \n \n \n );\n}\n","import { FC, useEffect } from 'react';\n\nimport { CADTriggerActionTypes } from '@aurorasolar/common-data-store';\n\nimport { useTriggerCadAction } from '../hooks';\nimport { CadMode } from '../types';\nimport { useCadContext } from '../use-cad/cad-context';\nimport { useCadViewportsState } from '../use-cad/cad-viewports-state';\nimport { useProCad } from '../use-cad/use-pro-cad';\nimport { cadZIndex } from '../z-index';\nimport { CadView } from './cad-view';\n\nexport const CAD_CONTAINER_TESTID = 'cad-container';\nconst VIEWPORT_NAME = 'design-3d';\n\ninterface CadWrapperProps {\n projectId: string;\n designId: string;\n useCad: (props: {\n cadContainer: HTMLElement | null;\n cadMode?: CadMode;\n designId: string;\n projectId: string;\n }) => void;\n cadMode?: CadMode;\n}\n\nexport const CadWrapper: FC = ({\n cadMode,\n designId,\n projectId,\n useCad = useProCad,\n}) => {\n const { isLoaded } = useCadContext();\n const cadContainer = useCadViewportsState((state) => state.cadContainer);\n const setActiveViewportName = useCadViewportsState(\n (state) => state.actions.setActiveViewportName,\n );\n\n useCad({\n cadContainer,\n cadMode,\n designId,\n projectId,\n });\n\n useEffect(() => {\n setActiveViewportName(VIEWPORT_NAME);\n return () => {\n setActiveViewportName(null);\n };\n }, [setActiveViewportName]);\n\n const triggerTopView = useTriggerCadAction(CADTriggerActionTypes.InitialSwitchToTopView);\n useEffect(() => {\n if (isLoaded) {\n triggerTopView();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoaded]);\n\n return ;\n};\n","import { useEffect } from 'react';\nimport { Box } from 'reflexbox/styled-components';\nimport styled from 'styled-components';\n\nimport { Colors } from '@aurorasolar/common-core/src/colors';\nimport { useDebouncedCallback } from '@aurorasolar/common-core/src/hooks';\nimport {\n Analytics,\n AnalyticsEventTypes,\n AnalyticsPageTypes,\n AppRouterNavigation,\n useAppModule,\n} from '@aurorasolar/common-module-loader';\n\nimport { useCloseLcaiWithRedirect, useRouteData } from '../../hooks';\nimport { useGetLeadCaptureProjectDataQuery } from '../../lead-capture.generated';\nimport {\n MessageType,\n sendQuoteRequestedMessage,\n useSendSDKMessageWithData,\n} from '../../message/message';\nimport { AnimateView, BoxWithMargin, SplitView, TopRail } from '../../shared-components';\nimport { LCAIText } from '../../typography';\nimport { DEBOUNCE_TIME, HEADER_COLOR } from '../../utils/constants';\nimport { SourcePage } from '../../utils/source-page';\nimport { TEXT } from '../../utils/text-constants';\nimport { Buttons, Cad, NextStep, SavingsEstimate, SolarEquation } from './components';\n\nconst DrawerSpacing = styled(Box)`\n @media screen and (orientation: portrait) and (max-width: 767px) {\n padding-top: 40px;\n }\n`;\n\nexport interface ResultsPageProps {\n projectId: string;\n sourcePage: SourcePage;\n}\n\nexport function ResultsPage({ projectId, sourcePage }: ResultsPageProps) {\n const analytics = useAppModule(Analytics);\n const navigation = useAppModule(AppRouterNavigation);\n\n const { customSettings, hasUtilityBillCapture, hideSavings, templateId } = useRouteData();\n const closeLCAIWithRedirect = useCloseLcaiWithRedirect({\n projectId,\n redirectUrl: customSettings?.endFlowRedirectUrl,\n sourcePage,\n templateId,\n });\n\n useSendSDKMessageWithData(MessageType.RESULTS, projectId, templateId);\n useSendSDKMessageWithData(MessageType.LEAD, projectId, templateId);\n\n const { data, loading } = useGetLeadCaptureProjectDataQuery({\n variables: { id: projectId },\n });\n\n const hasCustomerInfo = !!data?.projectData.customer;\n\n // if UBU ff off - consider UBU as completed already so it won't be accessible\n // if UBU ff on - use the value from the BE to know if completed or not\n const isProfileComplete = hasCustomerInfo && !hasUtilityBillCapture;\n\n useEffect(() => {\n if (!loading) {\n analytics?.page(AnalyticsPageTypes.LeadCaptureResults, {\n project_id: projectId,\n quote_hidden: false,\n quote_submitted: hasCustomerInfo,\n });\n }\n }, [analytics, loading, projectId, hasCustomerInfo]);\n\n const completeProfile = useDebouncedCallback(\n async () => {\n if (projectId != null) {\n await analytics?.track(AnalyticsEventTypes.LeadCaptureClickedCompleteProfile, {\n project_id: projectId,\n });\n navigation?.navigate(`/projects/${projectId}/bill-upload`, { replace: true });\n }\n },\n [analytics, navigation, projectId],\n DEBOUNCE_TIME,\n );\n\n const requestQuote = useDebouncedCallback(\n async () => {\n if (projectId != null) {\n await analytics?.track(AnalyticsEventTypes.LeadCaptureClickedGetAQuote, {\n project_id: projectId,\n });\n navigation?.navigate(`/projects/${projectId}/quote`, { replace: true });\n sendQuoteRequestedMessage();\n }\n },\n [analytics, navigation, projectId],\n DEBOUNCE_TIME,\n );\n\n if (loading) return <>;\n\n const projectData = data?.projectData;\n\n const savings = (\n projectData?.scenarios[0].avoidedCost?.escalatedSavingsInUsDollars ?? 0\n ).toLocaleString();\n const savingsPeriod = projectData?.scenarios[0].avoidedCost?.savingsPeriodYears ?? 0;\n\n const address = projectData?.address ?? '';\n const energyOffset = projectData?.scenarios[0].avoidedCost?.billOffsetPercentage ?? 0;\n const solarPanelCount = projectData?.scenarios[0].design?.moduleCount ?? 0;\n const sunlightHours = projectData?.scenarios[0].sunlightHours?.toLocaleString() ?? 0;\n const defaultHeader = !hideSavings ? TEXT.results.primaryHeader : TEXT.results.secondaryHeader;\n\n return (\n <>\n \n \n \n }\n leftContent={\n <>\n \n \n {customSettings?.resultsPageHeader || defaultHeader}\n \n \n {!hideSavings && }\n \n {!isProfileComplete && (\n \n )}\n \n \n This is a preliminary estimate for illustration purpose only. Actual system\n production or savings may vary and are not guaranteed.\n \n \n \n }\n rightContent={\n \n }\n />\n \n \n );\n}\n\nexport default ResultsPage;\n","import { memo, useEffect, useRef } from 'react';\n\ninterface PortalContainerProps {\n content: HTMLElement | null;\n}\n\nexport const PortalContainer = memo(({ content }: PortalContainerProps) => {\n const ownRef = useRef(null);\n const updateRef = (ref: HTMLElement | null) => {\n if (content && ref) {\n ref.appendChild(content);\n }\n ownRef.current = ref;\n };\n\n useEffect(() => {\n if (content && ownRef.current) {\n ownRef.current.appendChild(content);\n }\n }, [content]);\n\n return
;\n});\n","export interface Tip {\n message: string;\n primaryHeader: string;\n}\n\nexport interface LCAIText {\n alternatePrimaryButtonText?: string;\n endFlowButton?: string;\n primaryHeader?: string;\n placeholder?: string;\n secondaryHeader?: string;\n subheader?: string;\n disclaimer?: string;\n primaryButtonText?: string;\n tips?: Tip[];\n}\n\nexport const TEXT: Record = {\n common: {\n endFlowButton: 'Done',\n },\n error: {\n alternatePrimaryButtonText: 'Contact us',\n primaryHeader: 'Automated estimates are coming soon to your area.',\n subheader: \"Our solar experts will design a system that's perfect for your home.\",\n },\n landing: {\n primaryHeader: 'See solar on your home in minutes.',\n subheader:\n 'Bring solar to life on your home and learn how much you could save with solar in just a few simple steps.',\n },\n profileComplete: {\n primaryButtonText: 'Estimate your savings',\n primaryHeader: \"Thanks, now let's add solar to your home!\",\n subheader:\n 'Our advanced simulation engine is ready to build your home in 3D, automatically place solar panels, and estimate how much energy your house can generate every year.',\n },\n profileReview: {\n primaryHeader: 'Thank you, your profile is being reviewed.',\n subheader: 'If your home is a good fit for solar, a solar expert will reach out to you soon.',\n },\n progress: {\n tips: [\n {\n message:\n \"Solar panels save you money while you own the home, then add value when you're ready to sell. Homes with solar sell for 4.1% more on average than homes without.\",\n primaryHeader: 'Invest in your future',\n },\n {\n message:\n \"Solar is a clean, renewable source of energy that reduces your home's carbon footprint. A typical solar installation can reduce a home's CO2 impact by 6 tons per year.\",\n primaryHeader: 'Help build a better tomorrow',\n },\n {\n message:\n 'Pairing battery storage with solar panels helps ensure your home stays running even during outages, keeping your lights on and your food fresh.',\n primaryHeader: 'Power when you need it most',\n },\n {\n message:\n \"Air conditioning is the largest single contributor to most home's electricity bills. Going solar can help reduce high bills during hot summer months.\",\n primaryHeader: 'Take control over high bills',\n },\n {\n message:\n 'While electricity prices have increased 15% in the last decade, the cost of solar has decreased over 60%.',\n primaryHeader: \"There's never been a better time to go solar\",\n },\n ],\n },\n quote: {\n disclaimer:\n 'By checking the box, I am providing my electronic signature authorizing the company to contact me by email, text, or phone, including an automated technology, at the phone number or email provided above. This consent is not a required condition of purchase.',\n },\n results: {\n primaryButtonText: 'Get a more accurate quote',\n primaryHeader: 'With solar you could save',\n secondaryHeader: \"Here's how solar adds up for your home\",\n },\n};\n","var map = {\n\t\"./collapse.svg\": [\n\t\t\"./packages/common/packages/core/src/collapsible-drawer/collapse.svg\",\n\t\t\"collapsible-drawer-icons0\"\n\t],\n\t\"./expand.svg\": [\n\t\t\"./packages/common/packages/core/src/collapsible-drawer/expand.svg\",\n\t\t\"collapsible-drawer-icons1\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./packages/common/packages/core/src/collapsible-drawer lazy recursive ^\\\\.\\\\/.*\\\\.svg$\";\nmodule.exports = webpackAsyncContext;"],"names":["DropShadowImg","img","OverlayWrapper","div","TextWrapper","WHITE","maxSize","minSize","CircleWrapper","TextCenterWrapper","PinIconWrapper","CenteringGuideType","Circle","withBorder","diameter","background","translation","OuterCircle","InnerCircle","CenteringIconBackground","GRAY_800","CenteringIcon","icon","LOCATION_PIN","fillColor","name","size","Text","text","pinContent","alt","src","width","defaultContent","noCircleContent","CenteringGuide","centeringGuideType","Default","guideMap","NoCircle","Pin","useInterceptMouse","cadDomNode","clicked","setClicked","useState","useEffect","onMouse","options","capture","once","passive","addEventListener","removeEventListener","useCloseLcaiWithRedirect","projectId","redirectUrl","sourcePage","templateId","analytics","navigation","async","track","LeadCaptureExitedWidget","project_id","source_page","navigate","replace","redirectUrlReplacer","REPLACEMENT_MATCHER","ReplacementStrings","LEAD_ID","replacedString","Object","values","forEach","replacement","RegExp","ResultsButtonsTestIds","Buttons","closeLCAIWithRedirect","completeProfile","endFlowButtonPrimary","hasCustomerInfo","isProfileComplete","requestQuote","resultsPageButtonPrimary","DONE_BUTTON","intent","PRIMARY_LIGHT","onClick","common","endFlowButton","COMPLETE_PROFILE_BUTTON","QUOTE_BUTTON","BTN_ARROW","results","primaryButtonText","SavingsEstimate","savings","savingsPeriod","marginTop","color","PRIMARY_GREEN","fontWeight","type","GRAY_600","letterSpacing","textTransform","SolarEquation","energyOffset","solarPanelCount","sunlightHours","Container","Item","Icon","SYSTEM_DESIGN_FILL","Value","Description","Equation","IRRADIANCE_FILL","ENERGY_FILL","attrs","props","BLACK","GRAY_700","NextStepTestIds","NextStep","StepButton","NEXT_STEP_COMPLETE_PROFILE","NEXT_STEP_QUOTE","LINK","updateQueue","makeQueue","raf","fn","schedule","writeQueue","write","onStartQueue","onStart","onFrameQueue","onFrame","onFinishQueue","onFinish","timeouts","setTimeout","handler","ms","time","now","cancel","i","findIndex","t","splice","pendingCount","timeout","findTimeout","start","length","delete","sync","batchedUpdates","throttle","lastArgs","queuedFn","throttled","args","nativeRaf","window","requestAnimationFrame","use","impl","performance","Date","catch","console","error","frameLoop","advance","warn","update","ts","queue","add","loop","prevTs","count","eachSafely","flush","Math","min","next","Set","current","has","arg","each","value","e","noop","arr","Array","isArray","obj","a","constructor","fun","str","num","und","undefined","isEqual","b","eachProp","ctx","call","key","hasOwnProperty","toArray","iterator","items","from","clear","flushCalls","isSSR","navigator","test","userAgent","createStringInterpolator$1","to","colors$1","skipAnimation","willAdvance","globals","colors","createStringInterpolator","freeze","__proto__","assign","startQueue","currentFrame","prevFrame","priority","idle","animation","flushStartQueue","startSafely","sort","prevIndex","indexOf","startUnsafely","includes","index","other","dt","nextFrame","push","NUMBER","PERCENTAGE","parts","join","rgb","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","hslToRgb","h","s","l","r","g","round","parse255","int","parseInt","parse360","parseFloat","parse1","parsePercentage","colorToRgba","input","int32Color","match","exec","normalizeColor","createInterpolator","range","output","extrapolate","config","outputRange","inputRange","extrapolateLeft","extrapolateRight","easing","findRange","inputMin","inputMax","outputMin","outputMax","map","result","Infinity","interpolate","_extends","target","arguments","source","prototype","apply","this","$get","Symbol","for","$observers","hasFluidValue","Boolean","getFluidValue","getFluidObservers","callFluidObservers","event","observers","observer","eventObserved","callFluidObserver","FluidValue","get","Error","setFluidGetter","setHidden","addFluidObserver","observerAdded","removeFluidObserver","observerRemoved","defineProperty","writable","configurable","numberRegex","colorRegex","unitRegex","rgbaRegex","cssVariableRegex","variableToRgba","token","fallback","parseCSSVariable","getComputedStyle","document","documentElement","getPropertyValue","trim","startsWith","_value","namedColorRegex","rgbaRound","_","p1","p2","p3","p4","keys","keyframes","Number","interpolators","_output$find","missingUnit","find","prefix","func","called","TypeError","warnInterpolate","warnDirectCall","isAnimatedString","useLayoutEffect","useIsMounted","isMounted","useRef","useForceUpdate","random","useOnce","effect","emptyDeps","usePrev","prevRef","$node","getAnimated","owner","setAnimated","node","defineHidden","getPayload","Animated","payload","AnimatedValue","super","done","elapsedTime","lastPosition","lastVelocity","v0","durationProgress","create","getValue","setValue","step","reset","AnimatedString","_string","_toString","goal","TreeContext","dependencies","AnimatedObject","animated","_makePayload","_addToPayload","AnimatedArray","some","makeAnimated","getAnimatedType","parentNode","withAnimated","Component","host","hasInstance","isReactComponent","forwardRef","givenProps","givenRef","instanceRef","ref","useCallback","updateRef","deps","style","createAnimatedStyle","getAnimatedState","forceUpdate","callback","instance","applyAnimatedValues","PropsObserver","observerRef","dep","usedProps","getComponentProps","cacheKey","getDisplayName","displayName","callProp","matchProp","resolveProp","prop","getDefaultProp","default","noopTransform","getDefaultProps","transform","DEFAULT_PROPS","defaults","RESERVED_PROPS","pause","reverse","immediate","delay","onProps","onChange","onPause","onResume","onRest","onResolve","trail","expires","initial","enter","leave","children","onDestroyed","callId","parentId","inferTo","forward","getForwardProps","out","val","computeGoal","hasProps","isAsyncTo","detachRefs","ctrl","_ctrl$ref","replaceRef","_ctrl$ref2","c1","c2","c3","c4","PI","c5","bounceOut","x","n1","d1","tension","friction","mass","damping","linear","easeInQuad","easeOutQuad","easeInOutQuad","pow","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","clamp","AnimationConfig","frequency","velocity","restVelocity","precision","progress","duration","bounce","decay","sanitizeConfig","isTensionConfig","emptyArray","Animation","changed","toValues","fromValues","scheduleProps","defaultProps","state","actions","Promise","resolve","reject","_props$cancel","paused","resumeQueue","resume","delayed","pauseQueue","cancelId","err","getCombinedResult","cancelled","getCancelledResult","every","getNoopResult","getFinishedResult","finished","runAsync","asyncTo","prevTo","promise","prevPromise","asyncId","preventBail","bail","bailPromise","bailIfEnded","bailSignal","bailResult","animate","arg1","arg2","BailSignal","skipAnimationSignal","SkipAniamtionSignal","stopAsync","animating","stop","bind","all","then","item","isFrameValue","FrameValue","nextId$1","id","_priority","_onPriorityChange","toJSON","_attach","_detach","_onChange","parent","$P","hasAnimated","isAnimating","isPaused","setActiveBit","active","IS_ANIMATING","setPausedBit","SpringValue","_state","_pendingCalls","_lastCallId","_lastToId","_memoizedDuration","isDelayed","anim","position","elapsed","exp","abs","bounceFactor","canBounce","isGrowing","isMoving","isBouncing","numSteps","ceil","n","isNaN","currVal","finalVal","_stop","set","_focus","_set","_update","finish","_onStart","_start","_prepareNode","_ref","isLoop","mergeActiveFn","sendEvent","isFrozen","checkFinished","_resume","_merge","nextProps","createLoopUpdate","hasToProp","hasFromProp","prevFrom","hasFromChanged","hasToChanged","hasAsyncTo","newConfig","defaultConfig","mergeConfig","isAnimatable","nodeType","goalType","started","hasValueChanged","ACTIVE_EVENTS","oldNode","loopRet","overrides","createUpdate","findDefined","declareUpdate","_target$animation$typ","_target$animation","_target$defaultProps$","_target$defaultProps","BATCHED_EVENTS","nextId","Controller","springs","_flush","_initialProps","_lastAsyncId","_active","_changed","_started","_item","_events","Map","_onFrame","spring","prepareKeys","flushUpdateQueue","flushUpdate","promises","getSprings","prepareSprings","createSpring","setSprings","_objectWithoutPropertiesLoose","excluded","sourceKeys","_excluded$3","SpringContext","inherited","useContext","getResult","inputs","committed","prevCache","cache","prev","areInputsEqual","useMemoOne","Provider","init","_context","Consumer","SpringRef","_getProps","useSprings","propsFn","useMemo","layoutId","ctrls","updates","prevLength","declareUpdates","startIndex","endIndex","slice","context","prevContext","hasContext","cb","useSpring","isFn","TransitionPhase","useTransition","data","exitBeforeEnter","propsRef","propsConfig","transitions","usedTransitions","prevTransitions","expired","clearTimeout","expirationId","reused","phase","LEAVE","nextKey","getKeys","MOUNT","keyIndex","changes","exitingTransitions","forceChange","prevPhase","propsDelay","ENTER","isLeave","UPDATE","_p","expiry","expiryMs","ind","renderTransitions","render","elem","Interpolation","calc","_get","_dt","checkIdle","becomeIdle","max","reduce","highest","isIdle","self","isCustomPropRE","dangerousStyleValue","isUnitlessNumber","attributeCache","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","acc","charAt","toUpperCase","substring","prefixKey","domTransforms","pxTransforms","degTransforms","addUnit","unit","isValueIdentity","v","AnimatedStyle","y","z","transforms","xyz","deg","FluidTransform","identity","unstable_batchedUpdates","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","components","_applyAnimatedValues","_createAnimatedStyle","_getComponentProps","hostConfig","createHost","setAttribute","isFilterElement","nodeName","scrollTop","scrollLeft","attributes","names","hasAttribute","toLowerCase","textContent","setProperty","getIconLabel","isOpen","IconObject","object","DrawerIcon","iconString","setIconString","iconName","lazyLoadDrawerIcons","asyncLoadIcon","className","role","BUTTON_CLASS","BUTTON_CLOSED_CLASS","BUTTON_OPENED_CLASS","DRAWER_BODY_CLASS","DRAWER_BUTTON_ICON_CLASS","StyledDrawerContainer","StyleOverrideContainer","styleOverrides","StyledDrawerButton","IconContainer","button","DrawerFixedContainer","enableScrollOnBodyAndElements","selectors","body","paddingRight","overflow","selector","element","querySelector","DrawerButton","buttonAnimationStyles","testId","useAnimatedDrawerIcon","alignItems","justifyContent","FULL_SCREEN_IN","FULL_SCREEN","DrawerBodyAnimatedDiv","DrawerBody","drawerBodyAnimation","DrawerContainer","closeDrawer","sourceRef","buttonLabel","elementsToDisableScrollOn","openButtonLabel","hasRendered","setHasRendered","setIsAnimating","drawerTransition","buttonAnimation","clipPath","refCoordinates","getBoundingClientRect","innerHeight","height","innerWidth","left","top","borderBottomLeftRadius","borderBottomRightRadius","useBuildAnimations","scrollBarSize","clientWidth","existingPaddingSize","elementScrollBarSize","offsetWidth","existingElementPaddingSize","preventScrollOnBodyAndElements","open","TransitionChildren","transitionKey","Drawer","internalOpenState","setInternalOpenState","animationDoneCallback","hasBackdrop","transitionDuration","previousKey","trueChild","falseChild","showTrueChild","setShowTrueChild","currentHeight","targetHeight","setHeights","gettingDimensions","setGettingDimensions","transition","dimensions","newTargetHeight","newCurrentHeight","CollapsibleDrawer","isDefaultOpen","closeTestId","openTestId","onSetOpen","setIsOpen","buttonRef","CollapsibleDrawerClasses","CadContainer","NonInteractiveCad","AddressWithEllipsis","DrawerStyles","css","CAD","CADPortal","container","showCenteringGuide","status","cadContainer","setCadContainer","hasOrbitMode","wasClicked","domNode","LeadCaptureClickedCADView","createPortal","Loading","ZOOM_ROTATE","right","Cad","address","renderFullScreen","setRenderFullScreen","createElement","content","flexDirection","mb","DrawerSpacing","ResultsPage","customSettings","hasUtilityBillCapture","hideSavings","endFlowRedirectUrl","RESULTS","LEAD","loading","variables","projectData","customer","page","LeadCaptureResults","quote_hidden","quote_submitted","LeadCaptureClickedCompleteProfile","LeadCaptureClickedGetAQuote","scenarios","avoidedCost","escalatedSavingsInUsDollars","toLocaleString","savingsPeriodYears","billOffsetPercentage","design","moduleCount","defaultHeader","secondaryHeader","primaryHeader","buttons","leftContent","resultsPageHeader","GRAY_500","rightContent","PortalContainer","memo","ownRef","appendChild","TEXT","alternatePrimaryButtonText","subheader","landing","profileComplete","profileReview","tips","message","quote","disclaimer","webpackAsyncContext","req","__webpack_require__","o","code","ids","module","exports"],"sourceRoot":""}