();\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 CadLoadingPage,\n CadStatus,\n useCadContext,\n useLeadCaptureCad,\n} from '@aurorasolar/cad-core';\nimport { CAD_CONTAINER_TESTID } from '@aurorasolar/cad-core/src/cad-wrapper';\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 { CadView } from '../cad-view/cad-view';\nimport { useTriggerCadAction } from '../hooks';\nimport { CadMode } from '../types';\nimport { useCadContext } from '../use-cad/cad-context';\nimport { cadZIndex } from '../z-index';\n\nexport const CAD_CONTAINER_TESTID = 'cad-container';\n\ntype CadWrapperProps = {\n projectId: string;\n designId: string;\n useCad:\n | ((props: { cadMode?: CadMode; designId: string; projectId: string }) => void)\n | ((props: {\n cadMode?: CadMode;\n designId: string;\n projectId: string;\n // Some `useCad`s have an `isNewCameraControl` prop\n isNewCameraControl?: boolean;\n }) => void);\n cadMode?: CadMode;\n isNewCameraControl?: boolean;\n};\n\nexport const CadWrapper: FC = ({\n cadMode,\n designId,\n projectId,\n useCad,\n isNewCameraControl,\n}) => {\n const { isLoaded } = useCadContext();\n\n const propsForSpecificUseCad = {\n cadMode,\n designId,\n isNewCameraControl,\n projectId,\n };\n\n useCad(propsForSpecificUseCad);\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","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","once","func","called","TypeError","warnInterpolate","warnDirectCall","isAnimatedString","useEffect","useLayoutEffect","useIsMounted","isMounted","useRef","useForceUpdate","useState","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","cadDomNode","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":""}