{"version":3,"sources":["webpack:///./src/components/Logo/logo.svg","webpack:///./src/components/Logo/frh-icon.svg","webpack:///./node_modules/lodash/filter.js","webpack:///./node_modules/lodash/concat.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/throttle.js","webpack:///./src/components/Logo/Logo.js","webpack:///./src/icons/LogoutIcon.js","webpack:///./src/components/MenuColumnItem/MenuColumnItem.js","webpack:///./src/modules/Header/HeaderDesktopOverlay/HeaderDesktopOverlay.js","webpack:///./src/modules/Header/HeaderDesktop/HeaderDesktopMenuItem.js","webpack:///./src/modules/Header/HeaderDesktop/HeaderDesktop.js","webpack:///./src/icons/BurgerIcon.js","webpack:///./src/modules/Header/MenuButton/MenuButton.js","webpack:///./src/modules/Header/HeaderDevice/HeaderDevice.js","webpack:///./src/modules/Header/HeaderDeviceOverlay/HeaderDeviceOverlay.js","webpack:///./src/modules/Header/ServiceBar/ServiceBar.js","webpack:///./src/modules/Header/SkipToContentLink/SkipToContentLink.js","webpack:///./src/components/AlertBanner/AlertBanner.js","webpack:///./src/components/PowerOfAttorneyBanner/PowerOfAttorneyBanner.js","webpack:///./src/modules/Header/Header.js","webpack:///./src/components/Image/ImgElement.js","webpack:///./src/components/Image/Image.js","webpack:///./src/components/Markdown/renderers/HeaderRenderer/HeaderRenderer.js","webpack:///./src/components/Markdown/renderers/LinkRenderer/LinkRenderer.js","webpack:///./src/components/Markdown/renderers/ParagraphRenderer/ParagraphRenderer.js","webpack:///./src/components/Markdown/renderers/ImageRenderer/ImageRenderer.js","webpack:///./src/components/List/List.js","webpack:///./src/components/Markdown/renderers/ListRenderer/ListRenderer.js","webpack:///./src/components/Markdown/markdown-styles.js","webpack:///./src/components/Markdown/renderers/TextRenderer/TextRenderer.js","webpack:///./src/components/Markdown/Markdown.js","webpack:///./src/components/CtaLink/CtaLink.js","webpack:///./src/components/Image/imgix-support.js","webpack:///./src/components/Image/helpers.js","webpack:///./src/components/AccordionElements/AccordionContainer.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/react-transition-group/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/jotai/index.js","webpack:///./src/icons/ArrowDownIcon.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/jotai/vanilla.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/react-transition-group/TransitionGroup.js","webpack:///./src/components/AccordionElements/AccordionItemTitle.js","webpack:///./src/components/AccordionElements/AccordionItemBody.js","webpack:///./src/components/AccordionElements/AccordionItem.js","webpack:///./src/App/Atoms.js","webpack:///./src/icons/ZoomIcon.js","webpack:///./node_modules/react-spring/renderprops.cjs.js","webpack:///./node_modules/react-responsive-modal/lib/index.es.js","webpack:///./node_modules/react-minimalist-portal/lib/portal.js","webpack:///./node_modules/no-scroll/index.js","webpack:///./node_modules/focus-trap-react/dist/focus-trap-react.js","webpack:///./node_modules/focus-trap/index.js","webpack:///./node_modules/tabbable/index.js","webpack:///./node_modules/window-or-global/lib/index.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./src/components/ModalComponent/ModalComponent.js","webpack:///./node_modules/react-transition-group/ReplaceTransition.js","webpack:///./node_modules/react-transition-group/utils/ChildMapping.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/jotai/react.js","webpack:///./src/components/Grid/Col.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./src/components/Form/FormOverlay/FormOverlay.js","webpack:///./src/components/Grid/Row.js","webpack:///./src/modules/Header/ToggleSearch.js","webpack:///./src/icons/SearchIcon.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_arrayPush.js"],"names":["module","exports","array","predicate","index","length","resIndex","result","value","arrayPush","baseFlatten","copyArray","isArray","arguments","args","Array","isFlattenable","depth","isStrict","Symbol","isArguments","spreadableSymbol","isConcatSpreadable","undefined","debounce","isObject","func","wait","options","leading","trailing","TypeError","LogoLink","styled","Link","withConfig","displayName","componentId","Image","_ref","theme","width","_ref2","height","LogoHeading","p","_ref3","fontFamily","rem","_ref4","logoTextColor","_ref5","logoTextColorHover","Logo","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","key","_this$props","this","props","link","name","invert","rest","_objectWithoutProperties","_excluded","React","Object","assign","href","target","label","src","FRHIcon","alt","style","filter","logoText","FRHLogo","defaultProps","DEFAULT_THEME","withTheme","LogoutIcon","viewBox","strokeWidth","_objectSpread","cursor","strokeLinecap","strokeLinejoin","stroke","fill","strokeMiterlimit","data-cap","data-color","d","MenuColumnItemWrapper","div","withBottomBorder","concat","color","lola","MenuColumnItemTitle","Heading","MenuColumnItemLinkList","ul","MenuColumnItemLinkListItem","li","Separator","span","gumbo","MenuColumnItemLink","getLineHeight","negative","white","MenuColumnItem","title","links","keyName","tag","level","map","idx","HeaderDesktopOverlay","menuItem","onClose","closeLabel","id","ariaControlledBy","isActive","_useState2","_slicedToArray","useState","closeHover","setCloseHover","activeTheme","useContext","ThemeContext","handleEsc","e","stopPropagation","keyCode","useEffect","window","addEventListener","removeEventListener","diff","scrollY","pageYOffset","getDiff","top","getTop","closeStyle","accent","primary","transition","effects","linkHoverTransition","allMenuItems","_concat","column1","column2","column3","column4","submenuItems","_filter","item","isFooterItem","footerItems","createElement","OverlayWrapper","aria-expanded","aria-labelledby","Ribbon","marginBottom","OuterContainer","UtilContainer","BaseButton","onMouseEnter","onMouseLeave","onClick","pageX","pageY","handleCloseClick","CloseIcon","ButtonText","RemoveIcon","MenuWrapper","Footer","FooterItem","FooterLink","rgba","HeaderDesktopMenuItem","activeMenuKey","isOpen","onHover","itemKey","hover","setHover","_useState4","opening","setOpening","buttonRef","useRef","timer","setTimeout","clearTimeout","mainLink","_menuItem$column","_menuItem$column2","_menuItem$column3","ariaControlId","ariaLabeledById","closeMenu","shouldFocus","current","focus","ButtonWrapper","HeaderLink","onFocus","right","Fragment","MenuButton","notLink","aria-controls","ref","Border","CSSTransition","classNames","in","isNaN","timeout","unmountOnExit","body","durations","fast","button","_ref6","_ref7","HeaderDesktop","siteName","home","mainMenu","search","alternate","secondAlternate","HeaderDesktopWrapper","aria-label","MainRow","middle","LogoWrapper","Menu","MenuItem","SearchWrapper","SearchButton","handleOpenSearch","SearchIcon","aria-hidden","marginRight","StaticItems","AlternateLinkStyle","AlternateWrapper","AlternateIcon","nav","Svg","svg","open","className","Button","inner","icon","size","BurgerIcon","HeaderDeviceWrapper","Bar","Column","HomeColumn","MenuColumn","HeaderDevice","onMenuClick","MENU_ITEM_ICONS","ZoomIcon","exit","mediaQuery","sm","_templateObject","_taggedTemplateLiteral","md","_templateObject2","SearchItem","SubLink","accordionBodyStyle","borderPositive","accordionTitleContainerStyle","paddingLeft","paddingRight","accordionTitleStyle","fontSize","fontWeight","accordionItemIconStyle","HeaderDeviceOverlay","menu","searchLink","alternateLink","renderMenuItemAsLink","iconType","Icon","renderSubLink","AccordionContainer","consecutive","AccordionItem","isMenu","String","prefix","titleStyle","titleInnerStyle","itemBodyStyle","iconStyle","renderMenuItem","renderSearchItem","Wrapper","ServiceRow","Row","ServiceLink","getFontSize","LogoutLink","StyledButtonLink","buttonSecondaryColor","buttonPrimaryColor","StyledButtonLinkSave","mediaOnly","xs","ServiceBar","_ref8","services","logout","logoutOverlay","userCanSaveDelete","deleteOverlay","showOverlay","setShowOverlay","formSessionId","useAtom","formSessionIdAtom","isReceiptStep","formSessionIsReceiptStepAtom","validFormVersion","validFormVersionAtom","sessionId","handleClose","searchParamsSaveForm","URLSearchParams","deleteActiveForm","searchParamsDeleteForm","hrefDelete","logoutLink","toString","hrefSave","Col","align","ModalComponent","closeText","FormOverlay","secondaryLabel","primaryLabel","confirm","confirmMessage","SkipToContentLinkStyle","SkipToContentLink","AlertWrapper","AlertBox","AlertBanner","message","role","data-nosnippet","Markdown","noMargin","fullWidth","source","PowerOfAttorneyBannerWrapper","PowerOfAttorneyBannerInner","StyledText","Actions","_templateObject3","visible","StyledButton","StyledCancelButton","_templateObject4","PowerOfAttorneyBanner","personInfo","_ref8$description","description","_ref8$closeLabel","saveButtonLabel","cancelButtonLabel","_ref8$logoutButtonLab","logoutButtonLabel","saveOverlay","setVisible","_useState6","overlayType","setOverlayType","prevScrollPos","handleScroll","throttle","currentScrollPos","procurationId","type","Header","_this","_len","_key","call","state","overlayIsOpen","activated","menuItems","handleKeyDown","event","handleOverlayClose","handleDesktopMenuItemHover","setState","root","document","overflowY","position","handleOverlayToggle","_assertThisInitialized","nextProps","nextState","currentProps","currentState","shouldUpdate","serviceMenu","menuCloseLabel","alertMessage","context","MediaQuery","query","defaultMatches","StickyHeaderDesktop","StickyHeaderDevice","StickyPowerOfAttorneyDevice","contextType","ConfigContext","header","getObjectPosition","alignX","alignY","Img","img","blurred","show","hide","zoomOnHover","ImgElement","contain","cover","onLoad","renderAsDiv","setRenderAsDiv","objectFitSupport","as","backgroundImage","backgroundSize","backgroundPosition","objectPosition","objectFit","Container","fillContainer","aspect","_PureComponent","ready","animatedIn","elementWidth","elementHeight","handleLoad","fadeIn","handleTransitionEnd","handleError","handleMeasure","contentRect","Math","ceil","bounds","onResize","maxAspectRatio","aspectRatio","min","fit","crop","focalPoint","auto","x","y","imgixParams","imgixProps","processImage","imageDimensionMap","w","h","dpr","q","blur","_this2","disableBlur","_this$state","generateImgixProps","currentSrc","generateSource","generateAspectRatio","Measure","measureRef","generateBlurredSource","onError","onTransitionEnd","PureComponent","withImgix","SectionHeader","area","HeaderRenderer","children","AreaConsumer","CtaLinkWrapper","MarkdownCtaLink","CtaLink","MarkdownNormalLink","underline","LinkRenderer","isCtaLink","meta","isExternalLink","hrefSplit","split","_target","splice","join","getMetaInfoFromHref","linkProps","StyledParagraph","Paragraph","isImageRendere","isLinkRendere","ParagraphRenderer","childs","toArray","reduce","acc","val","push","child","every","maxWidth","noBreaks","imageSizes","default","main","ImageRenderer","_React$PureComponent","_src$split2","imgSrc","attr","attrs","qs","parse","parseInt","noSizes","ratio","sizes","Base","bodyFontSize","bodyFontWeight","UnorderedList","yellow","OrderedList","withComponent","List","ordered","Comp","ArticleList","ListRenderer","supportsStringRender","documentMode","test","navigator","userAgent","slice","TextRenderer","RENDERERS","ReactMarkdown","renderers","heading","paragraph","image","list","text","normalStyle","css","fullWidthStyle","StyledMarkdown","clearMargin","textInvert","disallowedTypes","secondaryFontFamily","Label","renderInner","hovering","_this$props2","normalizedWidth","imageQuality","constructUrl","params","preparedParams","keys","k","encodeURIComponent","Component","InjectedComponent","Consumer","config","imgixDomain","includes","global","devicePixelRatio","supports","AccordionContext","handleToggle","selected","currentHash","_toConsumableArray","initial","hash","location","hashToId","hasId","prevProps","Provider","aria-multiselectable","RouteContext","find","substring","__webpack_amd_options__","_CSSTransition","_interopRequireDefault","_ReplaceTransition","_TransitionGroup","_Transition","obj","__esModule","Transition","TransitionGroup","ReplaceTransition","hasOwn","hasOwnProperty","classes","i","arg","argType","_typeof","prototype","define","vanilla","require","react","forEach","defineProperty","enumerable","get","ArrowDownIcon","keyCount","defaultStore","hasInitialValue","atom","isActuallyWritableAtom","write","cancelPromiseMap","WeakMap","cancelPromise","promise","next","cancel","delete","resolvePromise","status","rejectPromise","reason","isEqualAtomValue","a","b","is","v","isEqualAtomError","hasPromiseAtomValue","Promise","returnAtomValue","atomState","createStore","atomStateMap","mountedMap","pendingMap","Map","getAtomState","setAtomState","prevAtomState","set","has","_next","resolve","reject","updateDependencies","nextAtomState","nextDependencies","dependencies","changed","aState","setAtomValue","orig","setAtomValueOrPromise","valueOrPromise","abortPromise","then","continuePromise","updatePromiseDependencies","mountDependencies","settled","catch","finally","registerCancelPromise","readAtomState","force","from","s","controller","setSelf","isSync","AbortController","signal","writeAtom","read","_aState","init","Error","_controller","abort","error","setAtomError","canUnmountAtom","mounted","l","t","recomputeDependents","dependencyMap","dirtyMap","getDependents","_mountedMap$get","dependents","Set","_","pendingAtom","_getAtomState","add","loop1","dependent","loop2","dirtyCount","_dependencyMap$get","isChanged","writeAtomState","getter","setter","r","_len3","_key3","flushPending","process","_len2","_key2","_len4","_key4","mountAtom","initialDependent","onMountQueue","_getAtomState2","queue","aMounted","onMount","onUnmount","_len5","_key5","u","f","unmountAtom","_mountedMap$get2","prevDependencies","depSet","pending","clear","listener","sub","addAtom","listeners","delAtom","getDefaultStore","_propTypes","_react","_reactLifecyclesCompat","_ChildMapping","_extends","self","ReferenceError","values","subClass","superClass","handleExited","bind","firstRender","create","constructor","__proto__","_proto","getChildContext","transitionGroup","isMounting","appeared","componentDidMount","componentWillUnmount","getDerivedStateFromProps","prevChildMapping","getInitialChildMapping","getNextChildMapping","node","currentChildMapping","getChildMapping","onExited","render","component","childFactory","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","appear","enter","childContextTypes","object","isRequired","propTypes","_default","polyfill","AccordionTitle","IconContainer","expanded","slow","OutLine","ShadowBackdrop","TitleWrapper","h4","isArticle","showShadow","cardShadow","AccordionItemTitle","handlePreventDoubleClick","detail","preventDefault","handleClick","onToggle","handleKeyPress","evt","charCode","titleId","controlsId","isResting","hoverShadow","iconStyling","titleStyling","breakpoints","isDesktop","aria-selected","onMouseDown","tabIndex","onKeyPress","isLast","animated","AccordionItemBody","labeledById","cta","itemBodyStyling","native","unique","items","presets","stiff","onStart","onRest","onResting","opacity","transform","leave","interpolate","nextUuid","isOnFooter","grey","uuid","handleAnimating","handleResting","animateTitle","idPrefix","keyGen","bodyId","disabled","showCookieDisclaimerAtom","videoFilterAtom","cx","cy","_interopDefault","ex","_inheritsLoose","React__default","ReactDOM","bugfixes","applyAnimatedValues","colorNames","requestFrame","cb","requestAnimationFrame","cancelFrame","cancelAnimationFrame","interpolation","now","Date","defaultElement","createAnimatedStyle","injectApplyAnimatedValues","fn","injectColorNames","names","injectBugfixes","injectInterpolation","cls","injectDefaultElement","el","injectCreateAnimatedStyle","factory","Globals","freeze","injectFrame","raf","caf","injectNow","nowFn","Animated","attach","detach","getValue","getAnimatedValue","addChild","removeChild","getChildren","getValues","AnimatedWithChildren","_Animated","getPayload","payload","AnimatedArrayWithChildren","_AnimatedWithChildren","AnimatedObjectWithChildren","_AnimatedWithChildren2","_this3","AnimatedStyle","_AnimatedObjectWithCh","colors","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","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","whitesmoke","yellowgreen","Interpolation","output","extra","range","extrapolate","outputRange","inputRange","easing","extrapolateLeft","extrapolateRight","input","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","NUMBER","rgb","RegExp","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","hslToRgb","g","round","parse255","str","int","parse360","parseFloat","parse1","num","parsePercentage","colorToRgba","match","int32Color","exec","stringShapeRegex","colorRegex","colorNamesRegex","AnimatedInterpolation","_AnimatedArrayWithChi","parents","_config","_arg","calc","updateConfig","AnimatedValue","_value","setValue","flush","updateStyles","findAnimatedStyles","styles","update","animatedStyles","updateValue","done","startPosition","lastPosition","lastVelocity","lastTime","animatedStyle","prepare","AnimatedArray","n","withDefault","defaultValue","shallowEqual","callProp","getValues$1","interpolateTo","forward","to","onFrame","reset","reverse","immediate","impl","inject","delay","destroyed","autoStart","getForwardProps","_extends2","convertToAnimatedValue","_extends3","convertValues","allProps","entries","handleRef","check","isUnitlessNumber","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","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeOpacity","prefixes","dangerousStyleValue","isCustomProperty","trim","prop","charAt","toUpperCase","prefixKey","attributeCache","rangeValue","replace","outputRanges","number","interpolations","p1","p2","p3","p4","callback","some","element","elementStyles","visibility","findDOMNode","cs","getComputedStyle","boxSizing","offsetWidth","offsetHeight","paddingX","paddingY","paddingTop","paddingBottom","borderX","borderLeftWidth","borderRightWidth","borderY","borderTopWidth","borderBottomWidth","convert","overwrite","instance","nodeType","setAttribute","scrollTop","scrollLeft","attributes","styleName","textContent","styleValue","setProperty","dashCase","toLowerCase","getAttribute","active","controllers","frameLoop","time","_iterator","_isArray","_i","iterator","isDone","noChange","configIdx","configs","endOfAnimation","valIdx","animatedValues","animation","fromValues","toValues","isAnimated","_velocity","initialVelocity","decay","startTime","duration","exp","abs","numSteps","floor","tension","friction","mass","isOvershooting","clamp","isVelocity","precision","isDisplacement","animatedProps","onUpdate","debouncedOnEnd","finished","removeController","Controller","hasChanged","merged","animations","frame","_ref$from","_ref$to","_ref$config","_ref$delay","parent","interpolation$$1","entry","isNumber","isString","startsWith","fromValue","toValue","toConfig","changes","prev","velocity","start","onEnd","stop","res","destroy","AnimatedProps","createAnimatedComponent","AnimatedComponent","propsAnimated","forceUpdate","attachProps","setNativeProps","forwardRef","oldPropsAnimated","shouldComponentUpdate","currentStyle","_this$propsAnimated$g","gentle","wobbly","molasses","Spring","lastProps","propsChanged","internal","didUpdate","didInject","wasMounted","finish","afterInject","after","componentDidUpdate","injectProps","Trail","first","instances","hook","_children","_this$props$from","KeyframesImpl","guid","last","running","previous","states","localId","slots","_loop","slot","primitive","_onRest","Keyframes","_states","destroyItem","onDestroyed","deleted","transitions","_get","_get$trail","trail","_get2","_keys","_items","currentKeys","currentSet","nextSet","added","removed","originalKey","updated","keyIndex","left","max","out","pos","findIndex","extendedAnimated","Constructor","_defineProperties","descriptor","configurable","writable","_defineProperty","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","_possibleConstructorReturn","closeIconSize","closeIconSvgPath","onClickCloseIcon","closeButton","closeIcon","xmlns","string","_modals","modalManager","modal","insertAt","head","getElementsByTagName","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","styleInject","Modal","_Component","_getPrototypeOf2","showPortal","blockScroll","handleKeydown","unblockScroll","shouldClose","onOverlayClick","closeOnOverlayClick","onEscKeyDown","closeOnEsc","onEntered","off","protoProps","staticProps","on","prevState","handleOpen","center","showCloseIcon","animationDuration","container","focusTrapped","focusTrapOptions","overlayId","modalId","closeIconId","transitionEnter","appearActive","transitionEnterActive","enterActive","transitionExit","exitActive","transitionExitActive","handleEntered","overlay","overlayCenter","handleClickOverlay","handleModalEvent","onMouseUp","clickOutsideDeactivates","handleClickCloseIcon","bool","_createClass","defineProperties","_propTypes2","_reactDom2","useCreatePortal","createPortal","isBrowser","Portal","renderLayer","unmountComponentAtNode","unstable_renderSubtreeIntoContainer","scrollbarSize","isOn","doc","documentElement","scrollHeight","innerHeight","dummyScroller","clientWidth","getScrollbarSize","overflow","scroll","noScroll","toggle","createFocusTrap","checkedProps","FocusTrap","setNode","previouslyFocusedElement","activeElement","specifiedFocusTrapOptions","tailoredFocusTrapOptions","returnFocusOnDeactivate","optionName","focusTrap","_createFocusTrap","activate","paused","pause","returnFocus","deactivate","unpause","elementProps","tabbable","xtend","listeningFocusTrap","userOptions","querySelector","escapeDeactivates","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","trap","activateOptions","updateTabbableNodes","onActivate","addListeners","removeListeners","deactivateOptions","onDeactivate","tryFocus","getInitialFocusNode","checkFocusIn","checkPointerDown","checkClick","checkKey","getNodeForOption","optionValue","contains","isFocusable","Document","stopImmediatePropagation","isEscapeEvent","isTabEvent","shiftKey","checkTab","tabbableNodes","tagName","select","isSelectableInput","candidateSelectors","candidateSelector","matches","Element","msMatchesSelector","webkitMatchesSelector","candidate","candidateTabindex","regularTabbables","orderedTabbables","untouchabilityChecker","UntouchabilityChecker","ownerDocument","candidates","querySelectorAll","includeContainer","unshift","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","sort","sortOrderedTabbables","isNodeMatchingSelectorFocusable","isInput","isRadio","checked","nodes","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isHiddenInput","isUntouchable","isTabbable","focusableCandidateSelector","tabindexAttr","contentEditable","isContentEditable","elementDocument","cache","hasDisplayNone","nodeComputedStyle","Node","ELEMENT_NODE","cached","defaultView","display","parentNode","computedStyle","freeGlobal","freeSelf","Function","ModalContent","ModalCloseWrapper","ModalCloseButton","ModalCloseText","handleCloseModal","borderRadius","padding","_reactDom","_args","handleEnter","handleLifecycle","handleEntering","handleExit","handleExiting","_len6","_key6","_len7","_key7","handler","originalArgs","_child$props","Children","inProp","_React$Children$toArr","second","onEnter","onEntering","onExit","onExiting","cloneElement","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","c","mapper","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","ReactExports","StoreContext","createContext","useStore","store","use","useAtomValue","_useReducer","useReducer","nextValue","_useReducer$","valueFromReducer","storeFromReducer","atomFromReducer","rerender","unsub","useDebugValue","useSetAtom","useCallback","storeRef","shortPrecision","precise","toFixed","renderBreakPoint","dimension","gridSize","offset","createQuery","stretch","shrink","verticalAlign","DIMENSION_NAMES","xsOffset","smOffset","mdOffset","lgOffset","hdOffset","StyledOverlayHeader","h2","StyledButtonWrapper","handlePrimaryAction","handleSecondaryAction","addGutter","gutter","gutterVal","gutterValOuter","noWrap","xsGutter","smGutter","mdGutter","lgGutter","hdGutter","end","bottom","around","between","raffleApi","console","alert","fillRule","clipRule","toNumber","nativeMax","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking"],"mappings":"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","file":"static/scripts/header-fe6d0bad5fd1c65ccad3.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/images/logo_mus2Vk.svg\";","module.exports = __webpack_public_path__ + \"static/images/frh-icon_yE0wZ5.svg\";","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var arrayPush = require('./_arrayPush'),\n baseFlatten = require('./_baseFlatten'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray');\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nmodule.exports = concat;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","// @flow\nimport * as React from 'react'\nimport styled, { withTheme } from 'styled-components'\nimport { rem } from 'polished'\n\nimport { DEFAULT_THEME } from '../../styles/theme'\n\nimport type { ThemeViewModel } from '../../types/ThemeViewModel'\nimport type { LinkViewModel } from '../../types/LinkViewModel'\n\nimport Link from '../Link'\nimport FRHLogo from './logo.svg'\nimport FRHIcon from './frh-icon.svg'\n\ntype Props = {\n name?: string,\n link?: LinkViewModel,\n invert?: boolean,\n height?: string,\n width?: string,\n theme?: ThemeViewModel,\n}\n\ntype State = {}\n\nconst LogoLink = styled(Link)`\n display: flex;\n align-items: center;\n text-decoration: none;\n height: 100%;\n width: 100%;\n`\nconst Image = styled('img')`\n width: ${({ theme, width }) =>\n width ? width : theme === 'kids' ? '32px' : undefined};\n height: ${({ theme, height }) =>\n height ? height : theme === 'kids' ? '47px' : '100%'};\n`\n\nconst LogoHeading = styled.p`\n font-family: ${({ theme }) => theme.fontFamily};\n font-size: ${rem(21)};\n font-weight: 900;\n margin-bottom: ${rem(18)}; /* Specific styling for the Header */\n white-space: nowrap;\n color: ${({ theme }) => theme.logoTextColor};\n line-height: 1.5;\n :hover {\n color: ${({ theme }) => theme.logoTextColorHover};\n }\n`\n\nclass Logo extends React.Component {\n static displayName = 'Logo'\n static defaultProps = {\n link: {\n href: '/',\n },\n invert: false,\n theme: {\n name: DEFAULT_THEME,\n },\n }\n\n render() {\n const { link, name, invert, height, width, theme, ...rest } = this.props\n\n return (\n \n {/*\n Use the logo as img src - could be inlined, but it makes sense to just load it async since\n it doesn't need any animations.\n */}\n {theme && theme.name === 'kids' ? (\n <>\n \n {theme.logoText || ''}\n \n ) : theme && theme.name === 'lgbt' ? (\n <>\n \n {theme.logoText || ''}\n \n ) : (\n \n )}\n \n )\n }\n}\n\nexport default withTheme(Logo)\n","// @flow\nimport * as React from 'react'\n\nconst LogoutIcon = ({ style, ...rest }: Object) => (\n \n \n \n \n \n \n \n)\n\nexport default LogoutIcon\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\n\nimport type { MenuItemCategory } from '../../types/MenuItemCategory'\n\nimport { Link } from '../Link/Link'\nimport Heading from '../Heading/Heading'\nimport { getLineHeight } from '../../styles/style-helpers'\nimport { color } from '../../styles/theme'\n\ntype Props = MenuItemCategory & {\n negative?: boolean,\n keyName?: string,\n withBottomBorder?: boolean,\n}\n\nconst MenuColumnItemWrapper = styled.div`\n padding-bottom: ${rem(16)};\n margin-bottom: ${rem(32)};\n flex: 0 0 31%;\n ${({ withBottomBorder }) =>\n withBottomBorder\n ? `\n border-bottom: 1px solid ${color.lola}\n`\n : null}\n`\n\nconst MenuColumnItemTitle = styled(Heading)`\n font-weight: 900;\n`\n\nconst MenuColumnItemLinkList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n`\n\nconst MenuColumnItemLinkListItem = styled.li`\n margin: 0 0 ${rem(8)} 0;\n display: inline-block;\n`\nexport const Separator = styled.span`\n color: ${color.gumbo};\n margin: 0 ${rem(8)} 0 ${rem(8)};\n\n font-size: ${rem(14)};\n`\n\nconst MenuColumnItemLink = styled(Link)`\n font-weight: 300;\n font-stretch: normal;\n font-size: ${rem(14)};\n line-height: ${getLineHeight('normal')};\n letter-spacing: normal;\n ${({ negative }) =>\n negative\n ? `\n color: ${color.white}\n `\n : null}\n`\n\nconst MenuColumnItem = ({\n title,\n links,\n negative,\n keyName,\n withBottomBorder,\n}: Props) => {\n return (\n \n {title && (\n \n {title.label}\n \n )}\n {links && (\n \n {links.map((link, idx) => (\n \n \n {link.label}\n \n {idx + 1 !== links.length && |}\n \n ))}\n \n )}\n \n )\n}\nMenuColumnItem.displayName = 'MenuColumnItem'\nMenuColumnItem.defaultProps = {}\n\nexport default MenuColumnItem\n","// @flow\nimport React, { useState, useEffect } from 'react'\nimport styled, { ThemeContext } from 'styled-components'\nimport { rem, rgba } from 'polished'\nimport { concat, filter } from 'lodash'\n\nimport type { MainMenuItem } from '../../../types/MainMenuItem'\n\nimport BaseButton from '../../../components/Button/BaseButton'\nimport { Link } from '../../../components/Link/Link'\nimport Heading from '../../../components/Heading/Heading'\nimport Ribbon from '../../../components/Ribbon/Ribbon'\nimport RemoveIcon from '../../../icons/RemoveIcon'\nimport MenuColumnItem, {\n Separator,\n} from '../../../components/MenuColumnItem/MenuColumnItem'\nimport { color, effects } from '../../../styles/theme'\n\ntype Props = {\n menuItem?: MainMenuItem,\n onClose?: (shouldFocus: boolean) => void,\n closeLabel?: string,\n theme?: string,\n id?: string,\n ariaControlledBy?: string,\n isActive?: boolean,\n}\n\nfunction HeaderDesktopOverlay({\n menuItem,\n onClose,\n closeLabel,\n theme,\n id,\n ariaControlledBy,\n isActive,\n}: Props) {\n const [closeHover, setCloseHover] = useState(false)\n const activeTheme = React.useContext(ThemeContext)\n\n const handleCloseClick = e => {\n setCloseHover(false)\n // Differentiating between mouse & keyboard onClick\n if (e.pageX && e.pageY) {\n onClose && onClose(false)\n } else {\n onClose && onClose(true)\n }\n }\n\n const handleEsc = e => {\n e.stopPropagation()\n if (e.keyCode === 27) {\n onClose && isActive && onClose(true)\n }\n }\n\n useEffect(() => {\n window.addEventListener('keydown', handleEsc)\n\n return () => window.removeEventListener('keydown', handleEsc)\n })\n\n const diff = getDiff(theme)\n const top = getTop(theme)\n\n const closeStyle = {\n color: closeHover\n ? activeTheme && activeTheme.accent\n : activeTheme && activeTheme.primary,\n transition: effects().linkHoverTransition,\n }\n\n if (!menuItem) return null\n\n const allMenuItems = concat(\n menuItem.column1 || [],\n menuItem.column2 || [],\n menuItem.column3 || [],\n menuItem.column4 || [],\n )\n\n const submenuItems = filter(allMenuItems, item => !item.isFooterItem)\n const footerItems = filter(allMenuItems, item => item.isFooterItem)\n\n return (\n \n \n \n
\n \n setCloseHover(true)}\n onMouseLeave={() => setCloseHover(false)}\n onClick={e => handleCloseClick(e)}\n >\n \n {closeLabel}\n
\n \n
\n
\n \n
\n {menuItem && (\n \n {submenuItems.map((item, idx) => (\n \n ))}\n {/* make sure items spaces correctly when two menuitems in last row */}\n {submenuItems.length % 3 === 2 && }\n \n )}\n
\n
\n {footerItems.map((item, idx) => (\n \n \n {item.title.label}\n \n {idx + 1 !== footerItems.length && |}\n \n ))}\n
\n
\n
\n \n )\n}\n\nexport default HeaderDesktopOverlay\n\nfunction getDiff(theme?: string) {\n if (typeof window === 'undefined') return 0\n const scrollY = window.scrollY || window.pageYOffset\n\n if (theme === 'kids' || theme === 'lgbt') {\n return 80\n }\n if (scrollY <= 40) {\n return 40 - scrollY + 40 // works\n }\n return 80\n}\n\nfunction getTop(theme?: string) {\n if (typeof window === 'undefined') return 0\n const scrollY = window.scrollY || window.pageYOffset\n\n if (theme === 'kids' || theme === 'lgbt') {\n return 80\n }\n if (scrollY === 0) {\n return 120\n }\n if (scrollY <= 40) {\n return 100 - scrollY\n }\n return 80\n}\n\nconst OverlayWrapper = styled.div`\n margin: 0;\n position: absolute;\n left: 0;\n right: 0;\n top: ${({ top }) => rem(top)};\n overflow-y: auto;\n background-color: ${color.white};\n border-top: ${({ theme }) => `1px solid ${rgba(theme.primary, 0.08)}`};\n z-index: 1;\n visibility: ${({ isActive }) => (isActive ? 'hidden' : 'visible')};\n`\n\nconst MenuWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n`\n\nconst OuterContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-content: space-between;\n height: calc(100vh - ${({ height }) => rem(height)});\n`\n\nconst UtilContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n cursor: pointer;\n padding-top: ${rem(28)};\n align-items: center;\n margin-bottom: ${rem(20)};\n`\n\nconst ButtonText = styled.div`\n letter-spacing: ${rem(0.2)};\n font-weight: 500;\n margin-right: ${rem(8)};\n align-self: center;\n margin-bottom: ${rem(3)};\n`\n\nconst CloseIcon = styled.div`\n display: flex;\n`\n\nconst Footer = styled.div`\n display: flex;\n margin-bottom: ${rem(24)};\n align-self: center;\n align-items: flex-end;\n height: 100%;\n`\n\nconst FooterLink = styled(Heading)`\n font-weight: 900;\n display: inline;\n`\nconst FooterItem = styled.div`\n display: flex;\n`\n","// @flow\nimport React, { useState, useRef, useEffect } from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\nimport { CSSTransition } from 'react-transition-group'\n\nimport { color } from '../../../styles/theme'\nimport { durations } from '../../../styles/animations'\n\nimport type { MainMenuItem } from '../../../types/MainMenuItem'\n\nimport HeaderDesktopOverlay from '../HeaderDesktopOverlay/HeaderDesktopOverlay'\nimport { Link } from '../../../components/Link/Link'\n\ntype Props = {\n activeMenuKey?: number,\n isOpen?: boolean,\n onHover: Function,\n onClose: Function,\n closeLabel: string,\n itemKey: number,\n menuItem: MainMenuItem,\n}\n\nfunction HeaderDesktopMenuItem({\n activeMenuKey,\n isOpen,\n onClose,\n onHover,\n closeLabel,\n itemKey,\n menuItem,\n}: Props) {\n const [hover, setHover] = useState(false)\n const [opening, setOpening] = useState(false)\n const buttonRef = useRef()\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (hover) {\n setOpening(true)\n onHover(itemKey)\n }\n }, 200)\n\n return () => clearTimeout(timer)\n }, [hover])\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setOpening(false)\n }, 500)\n\n return () => clearTimeout(timer)\n }, [opening])\n\n const { mainLink: link, column1 = [], column2 = [], column3 = [] } = menuItem\n if (\n !link ||\n !link.label ||\n (!link.href && !column1.length && !column2.length && !column3.length)\n )\n return null\n\n const isActive = itemKey === activeMenuKey\n const ariaControlId = `headerMenu-${itemKey}`\n const ariaLabeledById = `overlayMenu-${itemKey}`\n\n const closeMenu = shouldFocus => {\n if (isOpen && onClose) {\n // $FlowFixMe\n shouldFocus && buttonRef.current.focus()\n onClose()\n }\n }\n\n return !link.href ? (\n <>\n \n
\n \n isOpen && !opening ? closeMenu(false) : onHover(itemKey)\n }\n aria-controls={ariaLabeledById}\n aria-expanded={isActive}\n id={ariaControlId}\n ref={buttonRef}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n onFocus={() => !isActive && onClose()}\n >\n {link.label}\n \n
\n \n
\n \n \n \n \n ) : (\n \n
\n \n {link.label}\n \n
\n
\n )\n}\n\nexport default HeaderDesktopMenuItem\n\nexport const HeaderLink = styled(Link)`\n margin-right: ${({ right }) => rem(right)};\n outline-offset: 4px;\n color: ${({ theme }) => theme.body};\n`\n\nconst ButtonWrapper = styled.div`\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n`\n\nconst Border = styled.div`\n width: 100%;\n position: absolute;\n bottom: 0;\n right: 0;\n transition: border-color ${durations.fast} ease-in-out;\n border-bottom: 2px solid;\n border-color: ${({ isActive }) => (isActive ? color.accent : 'transparent')};\n`\n\nconst MenuButton = styled.button`\n padding: 0;\n display: block;\n border: none;\n text-decoration: none;\n cursor: default;\n user-select: none;\n font-family: ${({ theme }) => theme.fontFamily};\n outline-offset: 4px;\n color: ${({ theme }) => theme.logoTextColor};\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n color: ${({ theme }) => theme.logoTextColorHover};\n }\n\n &:focus {\n outline: 1px dashed currentColor;\n }\n\n :focus:not([data-focus-visible-added]) {\n outline: none;\n }\n`\n//TODO: Check why the styles below were not working in production!!\n//font-size: ${({ theme }) =>\n// theme.name === 'kids' || theme.name === 'lgbt' ? rem(17) : rem(16)};\n// font-weight: ${({ theme }) =>\n// theme.name === 'kids' || theme.name === 'lgbt' ? 700 : 500};\n","// @flow\nimport React from 'react'\nimport styled, { ThemeContext } from 'styled-components'\nimport { rem } from 'polished'\n\nimport { color } from '../../../styles/theme'\n\nimport type { LinkViewModel } from '../../../types/LinkViewModel'\nimport type { MainMenuItem } from '../../../types/MainMenuItem'\n\nimport Logo from '../../../components/Logo/Logo'\nimport LogoutIcon from '../../../icons/LogoutIcon'\nimport Ribbon from '../../../components/Ribbon/Ribbon'\n\nimport MenuItem, { HeaderLink } from './HeaderDesktopMenuItem'\nimport { Link } from '../../../components/Link/Link'\nimport SearchIcon from '../../../icons/SearchIcon'\nimport handleOpenSearch from '../ToggleSearch'\n\ntype Props = {\n siteName?: string,\n home?: LinkViewModel,\n mainMenu?: Array,\n search?: LinkViewModel,\n alternate?: LinkViewModel,\n secondAlternate?: LinkViewModel,\n activeMenuKey?: number,\n isOpen?: boolean,\n onHover: Function,\n onClose: Function,\n closeLabel?: string,\n}\n\nfunction HeaderDesktop(props: Props) {\n const {\n siteName,\n home,\n mainMenu,\n search,\n alternate,\n secondAlternate,\n onClose,\n } = props\n const theme = React.useContext(ThemeContext)\n\n return (\n \n \n \n {home && (\n \n \n \n )}\n \n {mainMenu && mainMenu.length > 0\n ? mainMenu.map((item, key) => (\n \n ))\n : null}\n \n {!!search && !!search.href && (\n handleOpenSearch(search?.href)}\n right={0}\n >\n \n {search && search.label}\n \n )}\n \n \n \n \n {!!alternate && !!alternate.href && theme.name !== 'lgbt' ? (\n \n \n {alternate && alternate.label}\n \n \n \n ) : null}\n {!!secondAlternate && !!secondAlternate.href ? (\n \n \n {secondAlternate && secondAlternate.label}\n \n \n \n ) : null}\n \n \n \n )\n}\n\nexport default HeaderDesktop\n\nconst SearchButton = styled.button`\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n padding: 0;\n margin: 0;\n color: ${({ theme }) => theme.body};\n`\n\nconst SearchWrapper = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst HeaderDesktopWrapper = styled.nav`\n background-color: ${color.white};\n`\n\nconst Menu = styled.div`\n display: flex;\n flex: 0.3 1 auto;\n justify-content: space-between;\n flex-wrap: nowrap;\n`\n\nconst StaticItems = styled.div`\n align-self: center;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 16px;\n padding-bottom: 1rem;\n`\n\nconst MainRow = styled.div`\n display: flex;\n flex-wrap: nowrap;\n height: ${rem(80)};\n`\n\nconst LogoWrapper = styled.div`\n height: ${rem(32)};\n display: flex;\n /* Alignment that is specific logo svg */\n margin-top: ${rem(21)};\n margin-right: auto;\n`\nconst AlternateWrapper = styled.div`\n display: flex;\n`\nconst AlternateLinkStyle = styled(Link)`\n border-radius: 62px;\n padding: 8px 16px;\n font-size: 16px;\n background: #c4e1e4;\n`\n\nconst AlternateIcon = styled(LogoutIcon)`\n width: 14px;\n height: 14px;\n margin-left: ${rem(8)};\n`\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\n\nconst Svg = styled.svg`\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n transition: transform 400ms;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n .line {\n fill: none;\n transition: stroke-dasharray 400ms, stroke-dashoffset 400ms;\n stroke: #000;\n stroke-width: 5.5;\n stroke-linecap: round;\n }\n\n .top {\n stroke-dasharray: 40 139;\n }\n\n .bottom {\n stroke-dasharray: 40 180;\n }\n\n ${({ open }) =>\n open &&\n `\n transform: rotate(45deg);\n\n .top {\n stroke-dashoffset: -98px;\n }\n\n .bottom {\n stroke-dashoffset: -138px;\n }\n `};\n`\n\ntype Props = {\n width?: string,\n height?: string,\n open?: boolean,\n}\n\nexport default (props: Props) => (\n \n \n \n \n \n)\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport BaseButton from '../../../components/Button/BaseButton'\nimport RemoveIcon from '../../../icons/RemoveIcon'\nimport BurgerIcon from '../../../icons/BurgerIcon'\n\ntype Props = {\n icon: 'close' | 'burger',\n isOpen?: boolean,\n size: number,\n}\n\nconst Button = styled(BaseButton)`\n background: none;\n color: currentColor;\n outline-offset: 0;\n display: flex;\n flex: 0 0 45px;\n justify-content: center;\n align-items: center;\n padding: 0 15px;\n`\n\nfunction MenuButton({ icon, isOpen, size, ...rest }: Props) {\n let inner\n if (icon === 'close') inner = \n else if (icon === 'burger')\n inner = \n\n return (\n \n )\n}\n\nMenuButton.displayName = 'MenuButton'\nMenuButton.defaultProps = {\n isOpen: false,\n size: 28,\n}\n\nexport default MenuButton\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem, rgba } from 'polished'\n\nimport type { LinkViewModel } from '../../../types/LinkViewModel'\n\nimport { color } from '../../../styles/theme'\nimport Logo from '../../../components/Logo/Logo'\nimport MenuButton from '../MenuButton/MenuButton'\nimport Ribbon from '../../../components/Ribbon/Ribbon'\n\ntype Props = {\n /** The link to use on logo. Label will be the site name to display next to the logo */\n home?: LinkViewModel,\n siteName?: string,\n search?: LinkViewModel,\n isOpen?: boolean,\n onMenuClick: () => void,\n}\n\nconst HeaderDeviceWrapper = styled.nav`\n z-index: 10;\n background-color: ${color.white};\n border-bottom: ${({ isOpen, theme }) =>\n !isOpen ? `1px solid ${rgba(theme.primary, 0.08)}` : 'none'};\n`\n\nconst Bar = styled.div`\n height: ${rem(72)};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`\n\nconst Column = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst HomeColumn = styled(Column)`\n height: ${rem(32)};\n justify-items: flex-start;\n margin-bottom: ${rem(8)};\n`\n\nconst MenuColumn = styled(Column)`\n justify-items: flex-end;\n`\n\n// todo: icon does not align-right with Ribbon elements\nconst Menu = styled(MenuButton)`\n padding: 0;\n\n /* Specific margin for burger svg */\n margin-right: -15px;\n`\n\nfunction HeaderDevice({ home, siteName, onMenuClick, search, isOpen }: Props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\nHeaderDevice.displayName = 'HeaderDevice'\nHeaderDevice.defaultProps = {}\n\nexport default HeaderDevice\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\nimport { effects } from '../../../styles/theme'\n\nimport type { MainMenuItem } from '../../../types/MainMenuItem'\nimport type { MenuItemCategory } from '../../../types/MenuItemCategory'\nimport type { LinkViewModel } from '../../../types/LinkViewModel'\n\nimport AccordionContainer from '../../../components/AccordionElements/AccordionContainer'\nimport AccordionItem from '../../../components/AccordionElements/AccordionItem'\nimport BaseButton from '../../../components/Button/BaseButton'\nimport Link from '../../../components/Link'\nimport ZoomIcon from '../../../icons/ZoomIcon'\nimport LogoutIcon from '../../../icons/LogoutIcon'\nimport { mediaQuery } from '../../../styles/media'\nimport consecutive from 'consecutive'\nimport handleOpenSearch from '../ToggleSearch'\n\nconst MENU_ITEM_ICONS = {\n search: ZoomIcon,\n exit: LogoutIcon,\n}\n\ntype Props = {\n children?: React.Node,\n isOpen?: boolean,\n onClose?: Function,\n menu?: Array,\n searchLink?: LinkViewModel,\n alternateLink?: LinkViewModel,\n secondAlternate?: LinkViewModel,\n serviceMenu?: Array,\n}\n\nconst OverlayWrapper = styled.div`\n background-color: white;\n padding: ${rem(24)} 0;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n overflow-x: hidden;\n\n position: absolute;\n top: 72px;\n right: 0;\n left: 0;\n bottom: 0;\n height: calc(\n 100vh - 72px\n ); /* todo: needs to take into account header height */\n\n z-index: 1;\n transition: transform 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);\n transform: ${({ isOpen }) =>\n !isOpen ? 'translateY(-100vh)' : 'translateY(0)'};\n\n ${mediaQuery.sm`\n padding-left: 70px;\n padding-right: 70px;\n `}\n\n ${mediaQuery.md`\n padding-left: 100px;\n padding-right: 100px;\n `}\n`\n\nconst MenuItem = styled(Link)`\n display: flex;\n justify-content: space-between;\n align-self: center;\n\n font-weight: bold;\n padding: ${rem(30)} ${rem(32)};\n\n border-top: 1px solid #e3e3e3;\n\n :first-of-type {\n border-top: none;\n }\n\n :last-of-type {\n border-bottom: 1px solid #e3e3e3;\n }\n`\nconst SearchItem = styled(Link)`\n display: flex;\n justify-content: space-between;\n align-self: center;\n\n font-weight: bold;\n padding: ${rem(30)} ${rem(32)};\n\n border-top: 1px solid #e3e3e3;\n\n :first-of-type {\n border-top: none;\n }\n\n :last-of-type {\n border-bottom: 1px solid #e3e3e3;\n }\n`\nconst SubLink = styled(BaseButton)`\n width: 100%;\n font-weight: bold;\n background-color: ${({ theme }) => theme.accordionBodyStyle};\n padding: ${rem(24)} 0;\n border-bottom: ${({ theme }) => effects(theme).borderPositive};\n\n :last-of-type {\n border-bottom: none;\n }\n`\n// inline styles\nconst accordionTitleContainerStyle = {\n paddingLeft: '30px',\n paddingRight: '30px',\n}\n\nconst accordionTitleStyle = {\n fontSize: '1rem',\n fontWeight: 'bold',\n}\n\nconst accordionBodyStyle = {\n paddingLeft: '40px',\n paddingRight: '40px',\n}\n\nconst accordionItemIconStyle = {\n marginRight: 0,\n}\n\nfunction HeaderDeviceOverlay({\n isOpen,\n menu,\n searchLink,\n alternateLink,\n secondAlternate,\n}: Props) {\n const renderMenuItem = (item: MainMenuItem, key: number) => {\n const keyGen = consecutive()\n\n if (\n !item.mainLink ||\n !item.mainLink.label ||\n (!(item.column1 || []).length &&\n !(item.column2 || []).length &&\n !(item.column3 || []).length)\n )\n return null // Do not display if no title or no links\n\n return (\n \n {item.column1 && item.column1.map(renderSubLink)}\n {item.column2 && item.column2.map(renderSubLink)}\n {item.column3 && item.column3.map(renderSubLink)}\n {item.column4 && item.column4.map(renderSubLink)}\n \n )\n }\n\n const renderMenuItemAsLink = (\n link?: LinkViewModel,\n key: number = 0,\n iconType?: string,\n ) => {\n if (!link || !link.href) return\n const Icon = iconType && MENU_ITEM_ICONS[iconType]\n\n return (\n \n {link.label}\n {Icon && }\n \n )\n }\n\n const renderSearchItem = (link?: LinkViewModel, key: number = 0) => {\n if (!link || !link.href) return\n return (\n handleOpenSearch(link.href)}>\n {link.label}\n \n )\n }\n\n const renderSubLink = (item: MenuItemCategory) => {\n if (!item || !item.title || !item.title.label) return null // Do not display if no title\n\n return (\n \n {item.title.label}\n \n )\n }\n\n return (\n \n \n {/* $FlowFixMe */}\n {menu &&\n menu.length > 0 &&\n menu.map((item, key) =>\n item.mainLink && item.mainLink.href\n ? renderMenuItemAsLink(item.mainLink, key)\n : renderMenuItem(item, key),\n )}\n {!!searchLink && !!searchLink.href && renderSearchItem(searchLink, 0)}\n {alternateLink &&\n alternateLink.href &&\n renderMenuItemAsLink(alternateLink, 0, 'exit')}\n {secondAlternate &&\n secondAlternate.href &&\n renderMenuItemAsLink(secondAlternate, 0, 'exit')}\n \n \n )\n}\n\nHeaderDeviceOverlay.displayName = 'HeaderDeviceOverlay'\nHeaderDeviceOverlay.defaultProps = {}\n\nexport default HeaderDeviceOverlay\n","// @flow\nimport React, { useState } from 'react'\nimport { useAtom } from 'jotai'\nimport {\n formSessionIdAtom,\n formSessionIsReceiptStepAtom,\n validFormVersionAtom,\n} from '../../../App/Atoms'\nimport { rem, rgba } from 'polished'\nimport styled from 'styled-components'\n\nimport type { LinkViewModel } from '../../../types/LinkViewModel'\nimport type { ServiceLogoutViewModel } from '../../../types/ServiceLogoutViewModel'\nimport type { OverlayViewModel } from '../../../types/OverlayViewModel'\n\nimport Col from '../../../components/Grid/Col'\nimport Row from '../../../components/Grid/Row'\nimport Link from '../../../components/Link'\nimport Ribbon from '../../../components/Ribbon/Ribbon'\nimport ModalComponent from '../../../components/ModalComponent/ModalComponent'\nimport FormOverlay from '../../../components/Form/FormOverlay/FormOverlay'\nimport { getFontSize } from '../../../styles/style-helpers'\nimport { color } from '../../../styles/theme'\nimport { mediaOnly } from '../../../styles/media'\nimport { durations } from '../../../styles/animations'\n\ntype Props = {\n /** Different areas of the site */\n services?: Array,\n logout?: ServiceLogoutViewModel,\n logoutOverlay?: OverlayViewModel,\n closeLabel?: string,\n userCanSaveDelete?: boolean,\n deleteOverlay?: OverlayViewModel,\n}\n\nconst Wrapper = styled.nav`\n /* Do not show on kids/lgbt theme */\n display: ${({ theme }) =>\n theme.name === 'kids' ? 'none' : 'block'};\n\n grid-area: service-bar;\n background-color: ${color.white};\n border-bottom: ${({ theme }) => `1px solid ${rgba(theme.primary, 0.08)}`};\n z-index: 70;\n position: relative;\n`\n\nconst ServiceRow = styled(Row)`\n height: ${rem(39)};\n`\nconst ServiceLink = styled(Link)`\n text-transform: uppercase;\n letter-spacing: 1px;\n white-space: nowrap;\n font-size: ${getFontSize('tiny')};\n font-weight: bold;\n margin-right: ${rem(24)};\n height: ${rem(39)};\n line-height: ${rem(39)};\n\n &:last-child {\n margin-right: 0;\n }\n`\n\nconst LogoutLink = styled(Link)`\n text-transform: uppercase;\n letter-spacing: 1px;\n white-space: nowrap;\n font-size: ${getFontSize('tiny')};\n font-weight: bold;\n margin-right: ${rem(24)};\n line-height: ${rem(39)};\n padding: 0 ${rem(16)};\n cursor: pointer;\n background: rgb(215, 235, 239);\n background: linear-gradient(\n 180deg,\n rgba(215, 235, 239, 1) 0%,\n rgba(172, 207, 213, 1) 100%\n );\n\n &:last-child {\n margin-right: 0;\n }\n`\n\nconst StyledButtonLink = styled(Link)`\n border-width: ${rem(2)};\n border-style: solid;\n color: ${({ theme }) => theme.buttonSecondaryColor};\n border-color: ${({ theme }) => theme.buttonSecondaryColor};\n min-width: ${rem(110)};\n text-align: center;\n font-size: 0.875rem;\n font-weight: bold;\n letter-spacing: 0.5px;\n padding: ${rem(12)} ${rem(32)} ${rem(11)};\n border-radius: ${rem(25)};\n transition: all ${durations.fast} ease-out;\n\n &:hover {\n color: ${({ theme }) => theme.buttonPrimaryColor};\n border-color: ${({ theme }) => theme.buttonSecondaryColor};\n background-color: ${({ theme }) => theme.buttonSecondaryColor};\n }\n`\n\nconst StyledButtonLinkSave = styled(StyledButtonLink)`\n margin-right: 16px;\n ${mediaOnly.xs`\n margin-bottom: 32px;\n margin-right: 0px;\n `}\n`\n\nfunction ServiceBar({\n services,\n logout,\n logoutOverlay,\n closeLabel,\n userCanSaveDelete,\n deleteOverlay,\n}: Props) {\n const [showOverlay, setShowOverlay] = useState(false)\n const [formSessionId] = useAtom(formSessionIdAtom) // get sessionId from questionaireHeader using 'jotai'\n const [isReceiptStep] = useAtom(formSessionIsReceiptStepAtom) // see if form is on receipt step (it has been submitted) - value comes from QuestionaireModule using 'jotai'\n const [validFormVersion] = useAtom(validFormVersionAtom)\n const sessionId = formSessionId || ''\n\n const handleOpen = () => {\n setShowOverlay(true)\n }\n\n const handleClose = () => {\n setShowOverlay(false)\n }\n\n const searchParamsSaveForm = new URLSearchParams({\n sessionId,\n deleteActiveForm: 'false',\n })\n\n const searchParamsDeleteForm = new URLSearchParams({\n sessionId,\n deleteActiveForm: 'true',\n })\n\n const hrefDelete =\n logout &&\n logout.logoutLink &&\n `${logout.logoutLink}?${searchParamsDeleteForm.toString()}`\n\n const hrefSave =\n logout &&\n logout.logoutLink &&\n `${logout.logoutLink}?${searchParamsSaveForm.toString()}`\n\n return (\n \n \n \n \n <>\n {services &&\n services.length > 0 &&\n services.map((link, key) => (\n \n {link.label}\n \n ))}\n {logout &&\n logout.logoutLink &&\n logoutOverlay &&\n deleteOverlay &&\n userCanSaveDelete &&\n !isReceiptStep ? (\n <>\n {logout.label}\n \n \n {validFormVersion && (\n \n {logoutOverlay.secondaryLabel}\n \n )}\n \n {logoutOverlay.primaryLabel}\n \n \n \n \n ) : (\n logout && (\n {\n if (window.confirm(logout.confirmMessage)) {\n window.open(logout.logoutLink, '_self')\n }\n }}\n >\n {logout.label}\n \n )\n )}\n \n \n \n \n \n )\n}\n\nServiceBar.displayName = 'ServiceBar'\nServiceBar.defaultProps = {}\n\nexport default ServiceBar\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\n\nconst SkipToContentLinkStyle = styled.div`\n a {\n position: absolute;\n top: -0.125rem;\n left: -9999px;\n z-index: 999;\n padding: 0.75rem 2rem 0.6875rem;\n opacity: 0;\n text-decoration: none;\n font-size: 0.875rem;\n font-weight: bold;\n letter-spacing: 0.5px;\n border: 0.125rem solid #003851;\n border-radius: 0 0 1.5625rem 1.5625rem;\n color: #003851;\n\n &:focus {\n left: 50%;\n transform: translateX(-50%);\n opacity: 1;\n }\n }\n`\n\nexport default function SkipToContentLink() {\n return (\n \n \n Skip to Content\n \n \n )\n}\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\n\nimport Ribbon from '../Ribbon/Ribbon'\nimport Markdown from '../Markdown/Markdown'\n\nexport type Props = {\n message?: string,\n}\n\nconst AlertWrapper = styled(Ribbon)`\n margin: 0;\n padding: ${rem(16)} 0;\n background: white;\n`\n\nconst AlertBox = styled.div`\n padding: ${rem(20)} ${rem(24)};\n background-color: #f7e6c4;\n border-radius: ${rem(8)};\n`\n\nfunction AlertBanner({ message }: Props) {\n if (!message) return null\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default AlertBanner\n","// @flow\n\nimport React, { useState, useEffect, useRef } from 'react'\nimport { useAtom } from 'jotai'\nimport {\n formSessionIdAtom,\n formSessionIsReceiptStepAtom,\n validFormVersionAtom,\n} from '../../App/Atoms'\nimport { rem } from 'polished'\nimport styled from 'styled-components'\nimport throttle from 'lodash/throttle'\n\nimport Ribbon from '../Ribbon/Ribbon'\nimport Button from '../Button/Button'\nimport { Link } from '../Link/Link'\nimport ModalComponent from '../ModalComponent/ModalComponent'\nimport FormOverlay from '../Form/FormOverlay/FormOverlay'\n\nimport type { PersonInfoViewModel } from '../../types/PersonInfoViewModel'\nimport type { OverlayViewModel } from '../../types/OverlayViewModel'\nimport type { ServiceLogoutViewModel } from '../../types/ServiceLogoutViewModel'\n\nimport { mediaOnly } from '../../styles/media'\nimport { durations } from '../../styles/animations'\n\nexport type Props = {\n logout?: ServiceLogoutViewModel,\n personInfo: PersonInfoViewModel,\n description?: string,\n closeLabel?: string,\n saveButtonLabel?: string,\n cancelButtonLabel?: string,\n logoutButtonLabel?: string,\n saveOverlay: OverlayViewModel,\n deleteOverlay: OverlayViewModel,\n userCanSaveDelete?: boolean,\n}\n\ntype ShowOverlayTypes = 'none' | 'save' | 'delete'\n\nconst PowerOfAttorneyBannerWrapper = styled(Ribbon)`\n background: #e1f0f1;\n margin: 0;\n padding: ${rem(16)} 0;\n min-height: ${rem(72)};\n\n ${mediaOnly.xs`\n min-height: ${rem(64)};\n `}\n`\n\nconst PowerOfAttorneyBannerInner = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #e1f0f1;\n color: ${({ theme }) => theme.primary};\n`\n\nconst StyledText = styled.div`\n font-size: ${rem(20)};\n line-height: 1.5;\n\n ${mediaOnly.xs`\n font-size: ${rem(16)};\n `}\n`\n\nconst Actions = styled.div`\n background: #e1f0f1;\n position: relative;\n margin: ${rem(12)} 0;\n\n ${mediaOnly.xs`\n max-height: ${props => (props.visible ? '' : '0')};\n margin: ${props => (props.visible ? `${rem(12)} 0` : '0')};\n opacity: ${props => (props.visible ? '1' : '0')};\n transition: all 0.1s;\n `};\n`\n\nconst StyledButton = styled.button`\n padding: 0;\n border: 0;\n text-decoration: underline;\n cursor: pointer;\n margin-right: ${rem(24)};\n color: ${({ theme }) => theme.primary};\n`\n\nconst StyledButtonLink = styled(Link)`\n border-width: ${rem(2)};\n border-style: solid;\n color: ${({ theme }) => theme.buttonSecondaryColor};\n border-color: ${({ theme }) => theme.buttonSecondaryColor};\n min-width: ${rem(110)};\n text-align: center;\n font-size: 0.875rem;\n font-weight: bold;\n letter-spacing: 0.5px;\n padding: ${rem(12)} ${rem(32)} ${rem(11)};\n border-radius: ${rem(25)};\n transition: all ${durations.fast} ease-out;\n\n &:hover {\n color: ${({ theme }) => theme.buttonPrimaryColor};\n border-color: ${({ theme }) => theme.buttonSecondaryColor};\n background-color: ${({ theme }) => theme.buttonSecondaryColor};\n }\n`\n\nconst StyledCancelButton = styled(Button)`\n margin-right: 16px;\n\n ${mediaOnly.xs`\n margin-bottom: 32px;\n margin-right: 0px;\n `}\n`\n\nexport default function PowerOfAttorneyBanner({\n logout,\n personInfo,\n description = 'Du er i gang med at ansøge på vegne af: ',\n closeLabel = 'Luk',\n saveButtonLabel,\n cancelButtonLabel,\n logoutButtonLabel = 'Log ud',\n saveOverlay,\n deleteOverlay,\n userCanSaveDelete,\n}: Props) {\n const [visible, setVisible] = useState(true)\n const [showOverlay, setShowOverlay] = useState(false)\n const [overlayType, setOverlayType] = useState('none')\n const [formSessionId] = useAtom(formSessionIdAtom)\n const [isReceiptStep] = useAtom(formSessionIsReceiptStepAtom)\n const [validFormVersion] = useAtom(validFormVersionAtom)\n\n const prevScrollPos = useRef(0)\n const sessionId = formSessionId || ''\n\n const handleScroll = throttle(() => {\n const currentScrollPos = window.pageYOffset\n\n if (currentScrollPos < 20) {\n setVisible(true)\n } else if (\n prevScrollPos.current > currentScrollPos &&\n prevScrollPos.current - currentScrollPos > 100\n ) {\n setVisible(true)\n } else if (\n prevScrollPos.current < currentScrollPos &&\n currentScrollPos > 100 &&\n currentScrollPos - prevScrollPos.current > 100\n ) {\n setVisible(false)\n }\n\n prevScrollPos.current = currentScrollPos\n }, 400)\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll)\n return () => window.removeEventListener('scroll', handleScroll)\n }, [setVisible])\n\n if (!personInfo) return null\n\n const handleClose = () => {\n setShowOverlay(false)\n }\n\n const handleSaveOverlay = () => {\n setOverlayType('save')\n setShowOverlay(true)\n }\n\n const handleDeleteOverlay = () => {\n setOverlayType('delete')\n setShowOverlay(true)\n }\n\n const searchParamsSaveForm = new URLSearchParams({\n sessionId,\n deleteActiveForm: 'false',\n })\n\n const searchParamsDeleteForm = new URLSearchParams({\n sessionId,\n deleteActiveForm: 'true',\n })\n\n const hrefDelete =\n logout &&\n logout.logoutLink &&\n `${logout.logoutLink}?${searchParamsDeleteForm.toString()}`\n\n const hrefSave =\n logout &&\n logout.logoutLink &&\n `${logout.logoutLink}?${searchParamsSaveForm.toString()}`\n\n return (\n
\n \n \n \n {description}\n \n {personInfo.name} - {personInfo.procurationId}\n \n \n \n \n {userCanSaveDelete && !isReceiptStep ? (\n <>\n {validFormVersion && (\n \n {saveButtonLabel}\n \n )}\n \n {cancelButtonLabel}\n \n \n ) : (\n logout && (\n {\n if (window.confirm(logout.confirmMessage)) {\n window.open(logout.logoutLink, '_self')\n }\n }}\n >\n {logoutButtonLabel}\n \n )\n )}\n \n \n \n {overlayType === 'save' && (\n \n \n {saveOverlay.secondaryLabel}\n \n \n {saveOverlay.primaryLabel}\n \n \n )}\n {overlayType === 'delete' && (\n \n {validFormVersion && (\n \n {deleteOverlay.secondaryLabel}\n \n )}\n \n {deleteOverlay.primaryLabel}\n \n \n )}\n \n
\n )\n}\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport root from 'window-or-global'\n\nimport type { LinkViewModel } from '../../types/LinkViewModel'\nimport type { MainMenuItem } from '../../types/MainMenuItem'\nimport type { ServiceLogoutViewModel } from '../../types/ServiceLogoutViewModel'\nimport type { PersonInfoViewModel } from '../../types/PersonInfoViewModel'\nimport type { OverlayViewModel } from '../../types/OverlayViewModel'\n\nimport HeaderDesktop from './HeaderDesktop/HeaderDesktop'\nimport HeaderDevice from './HeaderDevice/HeaderDevice'\nimport HeaderDeviceOverlay from './HeaderDeviceOverlay/HeaderDeviceOverlay'\nimport ServiceBar from './ServiceBar/ServiceBar'\nimport SkipToContentLink from './SkipToContentLink/SkipToContentLink'\nimport { ConfigContext } from '../../App/AppShell'\nimport AlertBanner from '../../components/AlertBanner/AlertBanner'\nimport PowerOfAttorneyBanner from '../../components/PowerOfAttorneyBanner/PowerOfAttorneyBanner'\nimport MediaQuery from '../../components/MediaQuery/MediaQuery'\n\nexport type Props = {\n /** Fields needed to implement search */\n search?: LinkViewModel,\n /** Name of the site */\n siteName?: string,\n /** The link to the homepage. Label will be the site name to display next to the logo */\n home?: LinkViewModel,\n /** Main navigation items */\n mainMenu?: Array,\n /** Utility links like help and contact */\n serviceMenu?: Array,\n /** Link to the alternate site (for børn <-> familieretshuset) */\n alternate?: LinkViewModel,\n secondAlternate?: LinkViewModel,\n menuCloseLabel?: string,\n logout?: ServiceLogoutViewModel,\n /** Message for alert banner */\n alertMessage?: string,\n /** Power of Attorney banner */\n personInfo: PersonInfoViewModel,\n description?: string,\n closeLabel?: string,\n saveButtonLabel?: string,\n cancelButtonLabel?: string,\n logoutButtonLabel?: string,\n /** Overlays for saving or deleting application form */\n saveOverlay: OverlayViewModel,\n deleteOverlay: OverlayViewModel,\n logoutOverlay: OverlayViewModel,\n /** See if user can save/delete form from current page */\n userCanSaveDelete?: boolean,\n}\n\ntype State = {\n overlayIsOpen: boolean,\n activeMenuKey?: number,\n}\n\nclass Header extends React.Component {\n static displayName = 'Header'\n static contextType = ConfigContext\n\n state = {\n overlayIsOpen: false,\n activated: false,\n activeMenuKey: undefined,\n }\n\n menuItems = undefined\n\n componentDidMount() {\n if (root && root.document) {\n root.document.addEventListener('keyup', this.handleKeyDown, false)\n }\n }\n\n shouldComponentUpdate(nextProps: Props, nextState: State) {\n const currentProps = this.props\n const currentState = this.state\n let shouldUpdate = false\n\n if (currentProps !== nextProps) {\n shouldUpdate = true\n }\n\n if (!shouldUpdate && currentState !== nextState) {\n shouldUpdate = true\n }\n\n return shouldUpdate\n }\n\n componentWillUnmount() {\n if (root && root.document) {\n root.document.removeEventListener('keyup', this.handleKeyDown, false)\n }\n }\n\n handleKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === 27) {\n this.handleOverlayClose()\n }\n }\n\n handleDesktopMenuItemHover = (itemKey: number) => {\n // if hovering on the same ACTIVE item do nothing\n if (this.state.activeMenuKey === itemKey) return null\n\n this.setState(state => ({\n overlayIsOpen: true,\n activeMenuKey: itemKey,\n }))\n\n if (root && root.document) {\n root.document.body.style.overflowY = 'scroll'\n root.document.body.style.position = 'fixed'\n root.document.body.style.width = '100%'\n }\n }\n\n handleOverlayToggle = () => {\n const { state } = this\n\n this.setState({\n overlayIsOpen: !state.overlayIsOpen,\n })\n\n if (root && root.document) {\n //THe condition below was inverted because at the time this code is runned,\n //the state `state.overlayIsOpen` was not changed to true yet, so it is still false.\n //And this was causing the scroll not to work after ther user opens and closed the mobile menu.\n if (!state.overlayIsOpen) {\n root.document.body.style.overflowY = 'scroll'\n root.document.body.style.position = 'fixed'\n root.document.body.style.width = '100%'\n } else {\n root.document.body.style.overflowY = 'initial'\n root.document.body.style.position = 'static'\n root.document.body.style.width = 'initial'\n }\n }\n }\n\n handleOverlayClose = () => {\n this.setState({\n overlayIsOpen: false,\n activeMenuKey: undefined,\n })\n\n if (root && root.document) {\n root.document.body.style.width = 'initial'\n root.document.body.style.overflowY = 'initial'\n root.document.body.style.position = 'static'\n }\n }\n\n render() {\n const {\n search,\n siteName,\n home,\n mainMenu,\n serviceMenu,\n alternate,\n secondAlternate,\n menuCloseLabel,\n logout,\n alertMessage,\n personInfo,\n description,\n closeLabel,\n saveButtonLabel,\n cancelButtonLabel,\n logoutButtonLabel,\n saveOverlay,\n deleteOverlay,\n logoutOverlay,\n userCanSaveDelete,\n } = this.props\n\n const { overlayIsOpen } = this.state\n\n return (\n \n \n {((this.context.theme === 'main' || this.context.theme === 'lgbt') && serviceMenu.length > 0) && (\n \n )}\n \n \n \n {personInfo && (\n \n )}\n \n \n \n <>\n \n \n \n \n {personInfo && (\n \n \n \n )}\n \n \n \n \n )\n }\n}\n\nexport default Header\n\nconst StickyHeaderDesktop = styled.header`\n grid-area: header;\n position: relative; /* Fallback for IE11 */\n position: sticky;\n top: 0;\n z-index: 60;\n\n @media (max-width: 1150px) {\n display: none;\n }\n`\n\nconst StickyHeaderDevice = styled.header`\n grid-area: header;\n position: relative; /* Fallback for IE11 */\n position: sticky;\n top: 0;\n z-index: 60;\n\n @media (min-width: 1151px) {\n display: none;\n }\n`\n\nconst StickyPowerOfAttorneyDevice = styled.header`\n grid-area: header;\n position: relative; /* Fallback for IE11 */\n position: sticky;\n top: 0;\n z-index: ${props => (props.overlayIsOpen ? '40' : '60')};\n\n @media (min-width: 1151px) {\n display: none;\n }\n`\n","// @flow\nimport React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { objectFitSupport } from './helpers'\n\nfunction getObjectPosition(alignX, alignY) {\n return alignX || alignY\n ? `${alignX || 'center'} ${alignY || 'center'}`\n : undefined\n}\n\nconst Img = styled.img`\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n max-width: none;\n object-fit: cover;\n object-position: center;\n ${({ blurred }) =>\n blurred &&\n `\n opacity: 0.4;\n `}\n\n ${({ show }) =>\n show &&\n `\n transition: opacity 0.4s linear;\n will-change: opacity;\n opacity: 1;\n `}\n\n ${({ hide }) =>\n hide &&\n `\n opacity: 0;\n will-change: opacity;\n `}\n\n ${({ zoomOnHover }) =>\n zoomOnHover &&\n `\n transition: transform 2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n &:hover {\n transform: scale(1.1);\n }\n `} \n`\n\ntype Props = {\n src: string,\n alignX?: 'left' | 'center' | 'right',\n alignY?: 'top' | 'center' | 'bottom',\n alt?: string,\n contain?: boolean,\n cover?: boolean,\n onLoad?: Function,\n blurred?: boolean,\n show?: boolean,\n hide?: boolean,\n zoomOnHover?: boolean,\n}\n\n/**\n * Img Element with ObjectFit fallback in unsupported browsers (IE)\n */\nfunction ImgElement({\n src,\n alt,\n contain,\n cover,\n alignX,\n alignY,\n onLoad,\n blurred,\n ...props\n}: Props) {\n /**\n * If this Image requires unsupported ObjectFit, fallback to a
with backgroundImage\n **/\n const [renderAsDiv, setRenderAsDiv] = useState(false)\n useEffect(() => {\n setRenderAsDiv(\n (alignX || alignY || contain || cover) && !objectFitSupport(),\n )\n }, [])\n\n if (renderAsDiv) {\n if (onLoad) {\n // Trigger the onLoad - could create a dummy image instead that triggers it after the image is actually loaded.\n onLoad()\n }\n return (\n \n )\n }\n\n return (\n \n )\n}\n\nImgElement.defaultProps = {\n contain: false,\n}\n\nexport default ImgElement\n","// @flow\nimport React, { PureComponent } from 'react'\nimport Measure from 'react-measure'\nimport styled from 'styled-components'\n\nimport type { ImageViewModel } from '../../types/ImageViewModel'\nimport type { Bounds, Rect } from './types'\n\nimport processImage, { imageDimensionMap, withImgix } from './imgix-support'\nimport ImgElement from './ImgElement'\n\nconst Container = styled.div`\n position: relative;\n width: 100%;\n ${({ fillContainer }) =>\n fillContainer &&\n `\n position: absolute;\n height: 100%;\n top: 0;\n left: 0;\n `} ${({ aspect }) =>\n aspect &&\n `\n padding-bottom: ${aspect * 100}%;\n `};\n ${({ zoomOnHover }) =>\n zoomOnHover &&\n `\n overflow: hidden\n `}\n`\n\ntype Props = ImageViewModel & {\n onResize?: (bounds: Bounds) => void,\n className?: string,\n zoomOnHover?: boolean,\n}\n\ntype State = {\n animatedIn: boolean,\n ready: boolean,\n elementWidth: number,\n elementHeight: number,\n}\n\n/**\n * Image handles fetching the correct Imgix image, and rendering it onto the page.\n * By default it will load an image that fillContainers the width of it's container, while keeping the original image aspect ratio\n */\nclass Image extends PureComponent {\n static displayName = 'Image'\n static defaultProps = {\n maxAspectRatio: 2,\n width: 1,\n height: 1,\n }\n\n static generateAspectRatio(\n width: number = 1,\n height: number = 1,\n maxAspectRatio: number = 1,\n aspectRatio?: number,\n ) {\n if (aspectRatio) {\n return aspectRatio\n }\n return Math.min(maxAspectRatio, height / width)\n }\n\n static generateImgixProps(props: Props) {\n return {\n fit: props.contain ? 'clip' : 'crop',\n crop: !props.contain\n ? props.focalPoint\n ? 'focalpoint'\n : props.crop\n : undefined,\n auto: ['compress', 'format'],\n 'fp-x': props.focalPoint ? props.focalPoint.x : undefined,\n 'fp-y': props.focalPoint ? props.focalPoint.y : undefined,\n ...props.imgixParams,\n }\n }\n\n static generateSource(\n src: string,\n width: number,\n height: number,\n imgixProps?: Object,\n ) {\n if (width > 0 && height > 0) {\n return processImage(src, {\n ...imgixProps,\n ...imageDimensionMap(width, height),\n })\n }\n\n return null\n }\n\n static generateBlurredSource(\n src: string,\n width: number = 1,\n height: number = 1,\n imgixProps: Object = {},\n ) {\n return processImage(src, {\n ...imgixProps,\n w: Math.ceil(64),\n h: Math.ceil((height / width) * 64),\n dpr: 1,\n q: 50,\n blur: 64,\n })\n }\n\n state = {\n ready: false,\n animatedIn: false,\n elementWidth: 0,\n elementHeight: 0,\n }\n\n timeout = null\n\n componentWillUnmount() {\n if (this.timeout) clearTimeout(this.timeout)\n }\n\n handleLoad = () => {\n if (this.props.fadeIn) {\n this.setState({ ready: true })\n this.timeout = setTimeout(() => {\n this.timeout = null\n this.setState({ animatedIn: true })\n }, 1000)\n } else {\n this.setState({ ready: true, animatedIn: true })\n }\n }\n\n handleTransitionEnd = () => {\n if (this.state.ready) {\n this.setState({ animatedIn: true })\n }\n }\n\n handleError = () => {\n this.setState({ ready: true, animatedIn: true })\n }\n\n handleMeasure = (contentRect: Rect) => {\n this.setState({\n elementWidth: Math.ceil(contentRect.bounds.width),\n elementHeight: Math.ceil(contentRect.bounds.height),\n })\n\n if (this.props.onResize) this.props.onResize(contentRect.bounds)\n }\n\n render() {\n const {\n src,\n fadeIn,\n disableBlur,\n maxAspectRatio,\n fillContainer,\n contain,\n cover,\n alignX,\n alignY,\n width,\n height,\n alt,\n className,\n zoomOnHover,\n aspectRatio,\n } = this.props\n\n const { ready, animatedIn, elementWidth, elementHeight } = this.state\n const imgixProps = Image.generateImgixProps(this.props)\n const currentSrc = Image.generateSource(\n src,\n elementWidth,\n elementHeight,\n imgixProps,\n )\n\n const aspect = !fillContainer\n ? Image.generateAspectRatio(width, height, maxAspectRatio, aspectRatio)\n : null\n\n return (\n \n {({ measureRef }) => {\n return (\n \n {!disableBlur && fadeIn && !animatedIn ? (\n \n ) : null}\n {currentSrc || (!fadeIn && !disableBlur) ? (\n \n ) : null}\n \n )\n }}\n \n )\n }\n}\n\nexport default withImgix(Image)\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport Heading from '../../../Heading/Heading'\nimport { mediaOnly } from '../../../../styles/media'\nimport { AreaConsumer } from '../../../AreaContext/AreaContext'\n\ntype Props = {\n children?: React.Node,\n level: 1 | 2 | 3 | 4 | 5,\n}\n\nconst SectionHeader = styled(Heading)`\n margin-top: ${p => (p.area === 'accordion' ? 40 : 80)}px;\n\n ${mediaOnly.xs`\n margin-top: ${p => (p.area === 'accordion' ? 20 : 40)}px;\n `};\n`\n\nfunction HeaderRenderer({ children, level }: Props) {\n /* Abuse the fact that we have 5 levels of headers, to render special blocks. */\n if (level === 1) {\n return (\n \n {area => (\n \n {children}\n \n )}\n \n )\n }\n if (level === 2) {\n return (\n \n {area => (\n \n {children}\n \n )}\n \n )\n }\n\n return (\n \n {area => (\n \n {children}\n \n )}\n \n )\n}\n\nHeaderRenderer.displayName = 'HeaderRenderer'\nHeaderRenderer.defaultProps = {}\n\nexport default HeaderRenderer\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\n\nimport type { LinkViewModel } from '../../../../types/LinkViewModel'\nimport type { LinkTargetTypes } from '../../../../types/enums/LinkTargetTypes'\n\nimport CtaLink from '../../../CtaLink/CtaLink'\nimport { Link, isExternalLink } from '../../../Link/Link'\n\ntype LinkProps = LinkViewModel & {\n children?: React.Node,\n}\n\ntype Props = LinkViewModel & {\n children?: React.Node,\n isCtaLink?: boolean,\n}\n\nconst CtaLinkWrapper = styled.div`\n margin-bottom: 1rem;\n`\n\nconst MarkdownCtaLink = (props: LinkProps) => (\n \n \n \n)\n\nconst MarkdownNormalLink = (props: LinkProps) => {\n return (\n \n {props.children}\n \n )\n}\n\ntype LinkMetaInfo = { href?: string, target?: LinkTargetTypes }\n\nconst getMetaInfoFromHref = (value: string = ''): LinkMetaInfo => {\n let href = value\n let target: LinkTargetTypes = isExternalLink(href) ? '_blank' : '_self'\n\n const hrefSplit = href.split('|')\n\n if (hrefSplit.length > 1) {\n const _target = hrefSplit.splice(1, hrefSplit.length - 1).join('')\n\n switch (_target) {\n case 'blank':\n target = '_blank'\n break\n case 'self':\n target = '_self'\n break\n case 'parent':\n target = '_parent'\n break\n case 'top':\n target = '_top'\n break\n default:\n break\n }\n\n href = hrefSplit.join('|')\n }\n\n return {\n target,\n href,\n }\n}\n\nconst LinkRenderer = (props: Props) => {\n const { isCtaLink, ...rest } = props\n const meta = getMetaInfoFromHref(props.href)\n const linkProps = { ...rest, ...meta }\n\n return isCtaLink ? (\n \n ) : (\n \n )\n}\n\nLinkRenderer.displayName = 'LinkRenderer'\nLinkRenderer.defaultProps = {}\n\nexport default LinkRenderer\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport Paragraph from '../../../Paragraph/Paragraph'\nimport { getLineHeight } from '../../../../styles/style-helpers'\nimport LinkRenderer from '../LinkRenderer/LinkRenderer'\nimport { color } from '../../../../styles/theme'\n\ntype Props = {\n children?: React.Node,\n}\n\nconst StyledParagraph = styled(Paragraph)`\n line-height: ${getLineHeight('normal')};\n & > a {\n color: inherit;\n }\n`\n\nconst isImageRendere = item =>\n item.type && item.type.displayName === 'ImageRenderer'\nconst isLinkRendere = item =>\n item.type && item.type.displayName === 'LinkRenderer'\n\nfunction ParagraphRenderer({ children }: Props) {\n const childs = React.Children.toArray(children).reduce((acc, val, index) => {\n if (isImageRendere(val)) {\n // Images are always rendered in their own \"paragraph\"\n acc.push(val)\n } else {\n // All other children are added to the list\n if (!acc.length || !Array.isArray(acc[acc.length - 1])) {\n acc.push([])\n }\n acc[acc.length - 1].push(val)\n }\n return acc\n }, [])\n\n return (\n \n {childs.map((child, index) => {\n if (!Array.isArray(child) && isImageRendere(child)) {\n return child\n }\n\n if (child.every(isLinkRendere)) {\n return child.map((link, key) => (\n \n ))\n }\n return (\n \n {child}\n \n )\n })}\n \n )\n}\n\nParagraphRenderer.displayName = 'ParagraphRenderer'\nParagraphRenderer.defaultProps = {}\n\nexport default ParagraphRenderer\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport qs from 'qs'\nimport Image from '../../../Image/Image'\nimport { mediaOnly } from '../../../../styles/media'\n\ntype Props = {\n src: string,\n title?: string,\n alt?: string,\n}\n\ntype State = {}\n\nconst Wrapper = styled.span`\n display: block;\n margin: 80px 0;\n max-width: ${p => p.maxWidth};\n\n ${mediaOnly.xs`\n margin: 40px 0;\n `};\n`\n\nconst imageSizes = {\n default: {\n maxWidth: '1440px',\n },\n main: {\n maxWidth: '880px',\n },\n}\n\nclass ImageRenderer extends React.PureComponent {\n static displayName = 'ImageRenderer'\n static defaultProps = {}\n\n render() {\n const { src, alt } = this.props\n\n if (!src) return null\n const [imgSrc, attr] = src.split('?', 2)\n const attrs = qs.parse(attr)\n const width = parseInt(attrs.width, 10)\n const height = parseInt(attrs.height, 10)\n const noSizes = !width || !height\n\n return (\n 0 && !noSizes ? `${width}px` : '100%'}>\n \n \n )\n }\n}\n\nexport default ImageRenderer\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\n\nimport { color } from '../../styles/theme'\n\ntype Props = {\n children?: React.Node,\n ordered?: boolean,\n}\n\nconst Base = styled.ul`\n color: inherit;\n //color: ${({ theme }) => theme.text};\n font-size: ${({ theme }) => rem(theme.bodyFontSize)};\n font-weight: ${({ theme }) => theme.bodyFontWeight};\n line-height: 1.5;\n padding: 0 0 0 1.5rem;\n margin-bottom: 2.5rem;\n list-style: none;\n\n > li {\n margin-bottom: 0.5rem;\n list-style-type: none;\n position: relative;\n }\n\n li > ul,\n li > ol {\n margin: 0.5rem 0 0;\n }\n`\n//TODO\nconst UnorderedList = styled(Base)`\n ${({ theme }) =>\n theme.name === 'kids' || theme.name === 'lgbt'\n ? `\n li::before {\n content: ''; /* The unicode for • character */\n position: absolute;\n border: 3px solid ${color.yellow};\n border-radius: 50%;\n width: ${rem(12)};\n height: ${rem(12)};\n left: ${rem(-20)};\n top: ${rem(6)};\n }`\n : `li::before {\n content: '\\\\2022'; /* The unicode for • character */\n position: absolute;\n left: -1em;\n font-size: 1em;\n }`}\n`\n\nconst OrderedList = styled(Base.withComponent('ol'))`\n counter-reset: section;\n li::before {\n counter-increment: section;\n content: counter(section) '.';\n font-weight: 500;\n position: absolute;\n left: -1em;\n font-size: 1rem;\n }\n`\n\nfunction List({ children, ordered, ...props }: Props) {\n const Comp = ordered ? OrderedList : UnorderedList\n return {children}\n}\n\nList.displayName = 'List'\nList.defaultProps = {}\n\nexport default List\n","// @flow\nimport * as React from 'react'\nimport List from '../../../List/List'\nimport { MaxWidth } from '../../markdown-styles'\n\ntype Props = {\n children?: React.Node,\n ordered: boolean,\n}\n\nconst ArticleList = MaxWidth.withComponent(List)\n\nfunction ListRenderer({ children, ordered }: Props) {\n return {children}\n}\n\nListRenderer.displayName = 'ListRenderer'\nListRenderer.defaultProps = {\n ordered: false,\n}\n\nexport default ListRenderer\n","// @flow\nimport styled from 'styled-components'\n\nexport const MaxWidth = styled.div`\n max-width: 550px;\n`\n","// @flow\nimport * as React from 'react'\n\ntype Props = {\n children?: React.Node,\n}\n\n// this renderer resolved a bug in Internet Explorer 11.\n// if supportsStringRender === true, it forces the returned string to be\n// wrapper in a React Fragment to prevent the IE bug from happening\n\n// detect IE8 and above, and Edge\n// source: https://stackoverflow.com/questions/31757852/how-can-i-detect-internet-explorer-ie-and-microsoft-edge-using-javascript\nconst isIE = () =>\n typeof window !== 'undefined' &&\n (document.documentMode || /Edge/.test(navigator.userAgent))\n\nvar supportsStringRender =\n !isIE() && parseInt((React.version || '16').slice(0, 2), 10) >= 16\n\nfunction TextRenderer(props: Props) {\n return supportsStringRender\n ? props.children\n : React.createElement('span', null, props.children)\n}\n\nTextRenderer.displayName = 'TextRenderer'\nTextRenderer.defaultProps = {}\n\nexport default TextRenderer\n","// @flow\nimport * as React from 'react'\nimport ReactMarkdown from 'react-markdown'\n\nimport type { MarkdownViewModel } from '../../types/MarkdownViewModel'\n\nimport HeaderRenderer from './renderers/HeaderRenderer/HeaderRenderer'\nimport ParagraphRenderer from './renderers/ParagraphRenderer/ParagraphRenderer'\nimport LinkRenderer from './renderers/LinkRenderer/LinkRenderer'\nimport ImageRenderer from './renderers/ImageRenderer/ImageRenderer'\nimport ListRenderer from './renderers/ListRenderer/ListRenderer'\nimport TextRenderer from './renderers/TextRenderer/TextRenderer'\n\nimport styled, { css, ThemeContext } from 'styled-components'\nimport { mediaOnly } from '../../styles/media'\nimport { clearMargin } from '../../styles/style-helpers'\n\ntype Props = MarkdownViewModel & { invert?: boolean }\n\nconst RENDERERS = {\n ...ReactMarkdown.renderers,\n heading: HeaderRenderer,\n paragraph: ParagraphRenderer,\n link: LinkRenderer,\n image: ImageRenderer,\n list: ListRenderer,\n text: TextRenderer,\n}\n\nconst normalStyle = css`\n margin: 80px 0;\n ${mediaOnly.xs`\n margin: 40px 0;\n `};\n`\n\nconst fullWidthStyle = css`\n & p {\n max-width: 100%;\n }\n`\n\nconst StyledMarkdown = styled(ReactMarkdown)`\n word-break: break-word;\n ${p => (p.noMargin ? clearMargin() : normalStyle)};\n ${p => (p.fullWidth ? fullWidthStyle : null)};\n color: ${({ theme, invert }) => (invert ? theme.textInvert : theme.text)};\n`\n\nfunction Markdown({\n source,\n noMargin,\n fullWidth,\n className,\n id,\n invert,\n}: Props) {\n const theme = React.useContext(ThemeContext)\n\n return (\n \n )\n}\n\nMarkdown.displayName = 'Markdown'\nMarkdown.defaultProps = {}\n\nexport default Markdown\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport BaseButton from '../Button/BaseButton'\nimport type { LinkViewModel } from '../../types/LinkViewModel'\nimport { secondaryFontFamily } from '../../styles/theme'\nimport type { ButtonState } from '../Button/BaseButton'\nimport { getFontSize } from '../../styles/style-helpers'\nimport { durations } from '../../styles/animations'\n\ntype Props = LinkViewModel & {\n children?: React.Node,\n /** Always render as anchor tag, don't fall back to button */\n isAnchor?: boolean,\n disabled?: boolean,\n size: 'small' | 'normal',\n invert?: boolean,\n}\n\ntype AlignProps = {\n align: 'left' | 'right',\n}\n\ntype State = {}\n\nconst Base = styled(BaseButton)`\n && {\n display: inline-block;\n font-size: ${(props: Props) => getFontSize(props.size)};\n font-family: ${secondaryFontFamily};\n text-decoration: underline;\n line-height: 1.25;\n text-align: left;\n max-width: 100%;\n transform: translateX(-0.5rem);\n }\n`\n\nconst Container = styled.div`\n position: relative;\n padding: 0.5rem;\n color: ${({ theme, invert }) => (invert ? theme.textInvert : theme.primary)};\n :hover {\n color: ${({ theme }) => theme.accent};\n }\n`\n\nconst Label = styled.span`\n transition: color ${durations.fast} ease-out;\n margin-left: ${(p: AlignProps) => (p.align === 'left' ? '22px' : null)};\n margin-right: ${(p: AlignProps) => (p.align === 'right' ? '22px' : null)};\n`\n\nclass CtaLink extends React.Component {\n static displayName = 'CtaLink'\n static defaultProps = {\n size: 'normal',\n }\n\n renderInner = ({ hovering }: ButtonState) => {\n const { children, label, invert } = this.props\n return (\n \n \n \n )\n }\n\n render() {\n const { children, ...rest } = this.props\n return {this.renderInner}\n }\n}\n\nexport default CtaLink\n","// @flow\nimport * as React from 'react'\nimport { ConfigContext } from '../../App/AppShell'\n\n/* eslint-disable no-param-reassign */\nexport const imageDimensionMap = (\n width: number,\n height: number,\n): { w: number, h: number } => {\n const aspect = height / width\n const normalizedWidth = Math.ceil(width)\n const normalizedHeight = Math.ceil(aspect * normalizedWidth)\n\n return {\n w: normalizedWidth,\n h: normalizedHeight,\n }\n}\n\nfunction imageQuality(dpr: number = 1) {\n return dpr >= 3 ? 30 : dpr === 2 ? 40 : undefined\n}\n\nfunction constructUrl(src, params) {\n const preparedParams = Object.keys(params)\n .filter(k => typeof params[k] !== 'undefined')\n .map(k => `${k}=${encodeURIComponent(params[k])}`)\n .join('&')\n\n return `${src}?${preparedParams}`\n}\n\n/**\n * Construct a URL for an image with an Imgix proxy, expanding image options\n * per the [API reference docs](https://www.imgix.com/docs/reference).\n * @param {String} src src of raw image\n * @param {Object} options map of image API options, in long or short form per expansion rules\n * @return {String} URL of image src transformed by Imgix\n */\nfunction processImage(src: string, options: Object = {}): string {\n if (!src) {\n return ''\n }\n if (!src.includes('imgix.net')) return src\n\n return constructUrl(src, {\n auto: 'format',\n dpr: global.devicePixelRatio || 1,\n q: imageQuality(global.devicePixelRatio),\n ...options,\n })\n}\n\nexport default processImage\n\nexport function withImgix(Component: React.ComponentType) {\n class InjectedComponent extends React.Component {\n render() {\n // todo: maybe check if already has protocol and domain\n if (process.env.NODE_ENV === 'development') {\n return \n }\n\n return (\n \n {config => (\n \n )}\n \n )\n }\n }\n\n return InjectedComponent\n}\n","// @flow\nimport type { ImageRatio } from './types'\n\nconst supports = {}\n\n/**\n * Detect if objectFit is supported on the client\n * @type {boolean}\n */\nexport function objectFitSupport(): boolean {\n if (!supports.objectFit) {\n supports.objectFit = global.document\n ? global.document.body.style.objectFit !== undefined\n : true\n }\n\n return supports.objectFit\n}\n\nexport default {\n objectFitSupport,\n}\n\nexport function generateSrc(\n url: string,\n width: number,\n ratio?: ImageRatio = 'original',\n) {\n if (url && !url.includes('/static/')) {\n const pos = url.lastIndexOf('/')\n return `${url.substr(0, pos)}/${ratio}/${width}/${url.substr(pos + 1)}`\n }\n\n return `${url}?w=${width}&ratio=${ratio || ''}`\n}\n","// @flow\nimport * as React from 'react'\nimport { RouteContext } from '../../App/Router'\n\nexport type AccordionContextType = {\n handleToggle: (id: string) => void,\n selected: Array,\n}\nexport const AccordionContext = React.createContext({\n handleToggle: () => {},\n selected: [],\n})\n\ntype Props = {\n children: React.Node,\n initial?: string,\n}\n\ntype State = {\n selected: Array,\n}\n\nclass AccordionContainer extends React.Component {\n static displayName = 'AccordionContainer'\n static contextType = RouteContext\n\n static hasId = (id: string, children: React.Node) => {\n return !!React.Children.toArray(children).find(child => {\n return child.props.id === id\n })\n }\n\n static hashToId = (hash: string) =>\n hash && hash.length > 1 ? hash.substring(1) : undefined\n\n currentHash: string = ''\n\n constructor(props: Props) {\n super(props)\n\n this.state = {\n selected: props.initial ? [props.initial] : [],\n }\n }\n\n componentDidMount(): void {\n const { hash } = this.context.location\n this.currentHash = hash\n\n const id = AccordionContainer.hashToId(hash)\n if (id && AccordionContainer.hasId(id, this.props.children)) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ selected: [...this.state.selected, id] })\n }\n }\n\n componentDidUpdate(prevProps: Props): void {\n if (\n this.context.location.hash &&\n this.context.location.hash !== this.currentHash\n ) {\n const id = AccordionContainer.hashToId(this.context.location.hash)\n this.currentHash = this.context.location.hash\n\n if (\n id &&\n AccordionContainer.hasId(id, this.props.children) &&\n !this.state.selected.includes(id)\n ) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ selected: [...this.state.selected, id] })\n }\n }\n }\n\n handleToggle = (id: string) => {\n if (!id) return\n const { selected } = this.state\n if (selected.includes(id)) {\n this.setState({\n selected: this.state.selected.filter(value => value !== id),\n })\n } else {\n this.setState({ selected: [...this.state.selected, id] })\n }\n }\n\n render() {\n return (\n \n
\n {this.props.children}\n
\n \n )\n }\n}\n\nexport default AccordionContainer\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nvar vanilla = require('jotai/vanilla');\nvar react = require('jotai/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","// @flow\nimport * as React from 'react'\n\nconst ArrowDownIcon = ({ style, ...rest }: Object) => (\n \n \n \n)\n\nexport default ArrowDownIcon\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","'use strict';\n\nvar keyCount = 0;\nfunction atom(read, write) {\n var key = \"atom\" + ++keyCount;\n var config = {\n toString: function toString() {\n return key;\n }\n };\n if (typeof read === 'function') {\n config.read = read;\n } else {\n config.init = read;\n config.read = function (get) {\n return get(this);\n };\n config.write = function (get, set, arg) {\n return set(this, typeof arg === 'function' ? arg(get(this)) : arg);\n };\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar hasInitialValue = function hasInitialValue(atom) {\n return 'init' in atom;\n};\nvar isActuallyWritableAtom = function isActuallyWritableAtom(atom) {\n return !!atom.write;\n};\nvar cancelPromiseMap = new WeakMap();\nvar registerCancelPromise = function registerCancelPromise(promise, cancel) {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(function () {}).finally(function () {\n return cancelPromiseMap.delete(promise);\n });\n};\nvar cancelPromise = function cancelPromise(promise, next) {\n var cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nvar resolvePromise = function resolvePromise(promise, value) {\n promise.status = 'fulfilled';\n promise.value = value;\n};\nvar rejectPromise = function rejectPromise(promise, e) {\n promise.status = 'rejected';\n promise.reason = e;\n};\nvar isPromiseLike = function isPromiseLike(x) {\n return typeof (x == null ? void 0 : x.then) === 'function';\n};\nvar isEqualAtomValue = function isEqualAtomValue(a, b) {\n return !!a && 'v' in a && 'v' in b && Object.is(a.v, b.v);\n};\nvar isEqualAtomError = function isEqualAtomError(a, b) {\n return !!a && 'e' in a && 'e' in b && Object.is(a.e, b.e);\n};\nvar hasPromiseAtomValue = function hasPromiseAtomValue(a) {\n return !!a && 'v' in a && a.v instanceof Promise;\n};\nvar isEqualPromiseAtomValue = function isEqualPromiseAtomValue(a, b) {\n return 'v' in a && 'v' in b && a.v.orig && a.v.orig === b.v.orig;\n};\nvar returnAtomValue = function returnAtomValue(atomState) {\n if ('e' in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nvar createStore = function createStore() {\n var atomStateMap = new WeakMap();\n var mountedMap = new WeakMap();\n var pendingMap = new Map();\n var storeListenersRev2;\n var mountedAtoms;\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2 = new Set();\n mountedAtoms = new Set();\n }\n var getAtomState = function getAtomState(atom) {\n return atomStateMap.get(atom);\n };\n var setAtomState = function setAtomState(atom, atomState) {\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(atomState);\n }\n var prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (hasPromiseAtomValue(prevAtomState)) {\n var _next = 'v' in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n if (prevAtomState.v !== _next) {\n cancelPromise(prevAtomState.v, _next);\n }\n }\n };\n var updateDependencies = function updateDependencies(atom, nextAtomState, nextDependencies) {\n var dependencies = new Map();\n var changed = false;\n nextDependencies.forEach(function (aState, a) {\n if (!aState && a === atom) {\n aState = nextAtomState;\n }\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] atom state not found');\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n var setAtomValue = function setAtomValue(atom, value, nextDependencies) {\n var prevAtomState = getAtomState(atom);\n var nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || new Map(),\n v: value\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {\n if (prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n } else {\n nextAtomState.v = prevAtomState.v;\n }\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n var setAtomValueOrPromise = function setAtomValueOrPromise(atom, valueOrPromise, nextDependencies, abortPromise) {\n if (isPromiseLike(valueOrPromise)) {\n var continuePromise;\n var updatePromiseDependencies = function updatePromiseDependencies() {\n var prevAtomState = getAtomState(atom);\n if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {\n return;\n }\n var nextAtomState = setAtomValue(atom, promise, nextDependencies);\n if (mountedMap.has(atom) && prevAtomState.d !== nextAtomState.d) {\n mountDependencies(atom, nextAtomState, prevAtomState.d);\n }\n };\n var promise = new Promise(function (resolve, reject) {\n var settled = false;\n valueOrPromise.then(function (v) {\n if (!settled) {\n settled = true;\n resolvePromise(promise, v);\n resolve(v);\n updatePromiseDependencies();\n }\n }, function (e) {\n if (!settled) {\n settled = true;\n rejectPromise(promise, e);\n reject(e);\n updatePromiseDependencies();\n }\n });\n continuePromise = function continuePromise(next) {\n if (!settled) {\n settled = true;\n next.then(function (v) {\n return resolvePromise(promise, v);\n }, function (e) {\n return rejectPromise(promise, e);\n });\n resolve(next);\n }\n };\n });\n promise.orig = valueOrPromise;\n promise.status = 'pending';\n registerCancelPromise(promise, function (next) {\n if (next) {\n continuePromise(next);\n }\n abortPromise == null || abortPromise();\n });\n return setAtomValue(atom, promise, nextDependencies);\n }\n return setAtomValue(atom, valueOrPromise, nextDependencies);\n };\n var setAtomError = function setAtomError(atom, error, nextDependencies) {\n var prevAtomState = getAtomState(atom);\n var nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || new Map(),\n e: error\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n var readAtomState = function readAtomState(atom, force) {\n var atomState = getAtomState(atom);\n if (!force && atomState) {\n if (mountedMap.has(atom)) {\n return atomState;\n }\n if (Array.from(atomState.d).every(function (_ref) {\n var a = _ref[0],\n s = _ref[1];\n if (a === atom) {\n return true;\n }\n var aState = readAtomState(a);\n return aState === s || isEqualAtomValue(aState, s);\n })) {\n return atomState;\n }\n }\n var nextDependencies = new Map();\n var isSync = true;\n var getter = function getter(a) {\n if (a === atom) {\n var _aState = getAtomState(a);\n if (_aState) {\n nextDependencies.set(a, _aState);\n return returnAtomValue(_aState);\n }\n if (hasInitialValue(a)) {\n nextDependencies.set(a, undefined);\n return a.init;\n }\n throw new Error('no atom init');\n }\n var aState = readAtomState(a);\n nextDependencies.set(a, aState);\n return returnAtomValue(aState);\n };\n var controller;\n var setSelf;\n var options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if (process.env.NODE_ENV !== 'production' && !isActuallyWritableAtom(atom)) {\n console.warn('setSelf function cannot be used with read-only atom');\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = function setSelf() {\n if (process.env.NODE_ENV !== 'production' && isSync) {\n console.warn('setSelf function cannot be called in sync');\n }\n if (!isSync) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return writeAtom.apply(void 0, [atom].concat(args));\n }\n };\n }\n return setSelf;\n }\n };\n try {\n var valueOrPromise = atom.read(getter, options);\n return setAtomValueOrPromise(atom, valueOrPromise, nextDependencies, function () {\n var _controller;\n return (_controller = controller) == null ? void 0 : _controller.abort();\n });\n } catch (error) {\n return setAtomError(atom, error, nextDependencies);\n } finally {\n isSync = false;\n }\n };\n var readAtom = function readAtom(atom) {\n return returnAtomValue(readAtomState(atom));\n };\n var addAtom = function addAtom(atom) {\n var mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n var canUnmountAtom = function canUnmountAtom(atom, mounted) {\n return !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n };\n var delAtom = function delAtom(atom) {\n var mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n var recomputeDependents = function recomputeDependents(atom) {\n var dependencyMap = new Map();\n var dirtyMap = new WeakMap();\n var getDependents = function getDependents(a) {\n var _mountedMap$get;\n var dependents = new Set((_mountedMap$get = mountedMap.get(a)) == null ? void 0 : _mountedMap$get.t);\n pendingMap.forEach(function (_, pendingAtom) {\n var _getAtomState;\n if ((_getAtomState = getAtomState(pendingAtom)) != null && _getAtomState.d.has(a)) {\n dependents.add(pendingAtom);\n }\n });\n return dependents;\n };\n var loop1 = function loop1(a) {\n getDependents(a).forEach(function (dependent) {\n if (dependent !== a) {\n dependencyMap.set(dependent, (dependencyMap.get(dependent) || new Set()).add(a));\n dirtyMap.set(dependent, (dirtyMap.get(dependent) || 0) + 1);\n loop1(dependent);\n }\n });\n };\n loop1(atom);\n var loop2 = function loop2(a) {\n getDependents(a).forEach(function (dependent) {\n if (dependent !== a) {\n var dirtyCount = dirtyMap.get(dependent);\n if (dirtyCount) {\n dirtyMap.set(dependent, --dirtyCount);\n }\n if (!dirtyCount) {\n var _dependencyMap$get;\n var isChanged = !!((_dependencyMap$get = dependencyMap.get(dependent)) != null && _dependencyMap$get.size);\n if (isChanged) {\n var prevAtomState = getAtomState(dependent);\n var nextAtomState = readAtomState(dependent, true);\n isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);\n }\n if (!isChanged) {\n dependencyMap.forEach(function (s) {\n return s.delete(dependent);\n });\n }\n }\n loop2(dependent);\n }\n });\n };\n loop2(atom);\n };\n var writeAtomState = function writeAtomState(atom) {\n var isSync = true;\n var getter = function getter(a) {\n return returnAtomValue(readAtomState(a));\n };\n var setter = function setter(a) {\n var r;\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error('atom not writable');\n }\n var prevAtomState = getAtomState(a);\n var nextAtomState = setAtomValueOrPromise(a, args[0]);\n if (!isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState.apply(void 0, [a].concat(args));\n }\n if (!isSync) {\n var flushed = flushPending();\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'async-write',\n flushed: flushed\n });\n });\n }\n }\n return r;\n };\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var result = atom.write.apply(atom, [getter, setter].concat(args));\n isSync = false;\n return result;\n };\n var writeAtom = function writeAtom(atom) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n var result = writeAtomState.apply(void 0, [atom].concat(args));\n var flushed = flushPending();\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'write',\n flushed: flushed\n });\n });\n }\n return result;\n };\n var mountAtom = function mountAtom(atom, initialDependent, onMountQueue) {\n var _getAtomState2;\n var queue = onMountQueue || [];\n (_getAtomState2 = getAtomState(atom)) == null || _getAtomState2.d.forEach(function (_, a) {\n var aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom, queue);\n }\n }\n });\n readAtomState(atom);\n var mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: new Set()\n };\n mountedMap.set(atom, mounted);\n if (process.env.NODE_ENV !== 'production') {\n mountedAtoms.add(atom);\n }\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n var onMount = atom.onMount;\n queue.push(function () {\n var onUnmount = onMount(function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return writeAtom.apply(void 0, [atom].concat(args));\n });\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n });\n }\n if (!onMountQueue) {\n queue.forEach(function (f) {\n return f();\n });\n }\n return mounted;\n };\n var unmountAtom = function unmountAtom(atom) {\n var _mountedMap$get2;\n var onUnmount = (_mountedMap$get2 = mountedMap.get(atom)) == null ? void 0 : _mountedMap$get2.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if (process.env.NODE_ENV !== 'production') {\n mountedAtoms.delete(atom);\n }\n var atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach(function (_, a) {\n if (a !== atom) {\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] could not find atom state to unmount', atom);\n }\n };\n var mountDependencies = function mountDependencies(atom, atomState, prevDependencies) {\n var depSet = new Set(atomState.d.keys());\n prevDependencies == null || prevDependencies.forEach(function (_, a) {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach(function (a) {\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n var flushPending = function flushPending() {\n var flushed;\n if (process.env.NODE_ENV !== 'production') {\n flushed = new Set();\n }\n while (pendingMap.size) {\n var pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(function (_ref2) {\n var atom = _ref2[0],\n prevAtomState = _ref2[1];\n var atomState = getAtomState(atom);\n if (atomState) {\n var mounted = mountedMap.get(atom);\n if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (mounted && !(!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach(function (listener) {\n return listener();\n });\n if (process.env.NODE_ENV !== 'production') {\n flushed.add(atom);\n }\n }\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] no atom state to flush');\n }\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n return flushed;\n }\n };\n var subscribeAtom = function subscribeAtom(atom, listener) {\n var mounted = addAtom(atom);\n var flushed = flushPending();\n var listeners = mounted.l;\n listeners.add(listener);\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'sub',\n flushed: flushed\n });\n });\n }\n return function () {\n listeners.delete(listener);\n delAtom(atom);\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'unsub'\n });\n });\n }\n };\n };\n if (process.env.NODE_ENV !== 'production') {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n dev_subscribe_store: function dev_subscribe_store(l, rev) {\n if (rev !== 2) {\n throw new Error('The current StoreListener revision is 2.');\n }\n storeListenersRev2.add(l);\n return function () {\n storeListenersRev2.delete(l);\n };\n },\n dev_get_mounted_atoms: function dev_get_mounted_atoms() {\n return mountedAtoms.values();\n },\n dev_get_atom_state: function dev_get_atom_state(a) {\n return atomStateMap.get(a);\n },\n dev_get_mounted: function dev_get_mounted(a) {\n return mountedMap.get(a);\n },\n dev_restore_atoms: function dev_restore_atoms(values) {\n for (var _iterator = _createForOfIteratorHelperLoose(values), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n atom = _step$value[0],\n valueOrPromise = _step$value[1];\n if (hasInitialValue(atom)) {\n setAtomValueOrPromise(atom, valueOrPromise);\n recomputeDependents(atom);\n }\n }\n var flushed = flushPending();\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'restore',\n flushed: flushed\n });\n });\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nvar defaultStore;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__ === 'number') {\n ++globalThis.__NUMBER_OF_JOTAI_INSTANCES__;\n } else {\n globalThis.__NUMBER_OF_JOTAI_INSTANCES__ = 1;\n }\n}\nvar getDefaultStore = function getDefaultStore() {\n if (!defaultStore) {\n if (process.env.NODE_ENV !== 'production' && globalThis.__NUMBER_OF_JOTAI_INSTANCES__ !== 1) {\n console.warn('Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044');\n }\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexports.atom = atom;\nexports.createStore = createStore;\nexports.getDefaultStore = getDefaultStore;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","// @flow\n\nimport * as React from 'react'\nimport { rem } from 'polished'\nimport { color, effects } from '../../styles/theme'\nimport styled from 'styled-components'\nimport { breakpoints, mediaOnly, mediaQuery } from '../../styles/media'\nimport ArrowDownIcon from '../../icons/ArrowDownIcon'\nimport { durations } from '../../styles/animations'\nimport MediaQuery from '../MediaQuery/MediaQuery'\nimport { getFontSize } from '../../styles/style-helpers'\n\nconst AccordionTitle = styled.div`\n margin: 0;\n font-size: ${getFontSize('large')};\n user-select: none;\n font-weight: ${({ theme }) =>\n theme.name === 'kids' || theme.name === 'lgbt' ? 700 : 500};\n flex: 1 1 auto;\n transform-origin: left;\n color: ${({ theme, invert }) => (invert ? theme.textInvert : theme.primary)};\n\n &:hover {\n color: ${color.accent};\n }\n`\n\nconst IconContainer = styled.div`\n color: ${({ expanded, theme, invert }) =>\n expanded ? color.accent : invert ? theme.textInvert : theme.primary};\n transition: ${durations.slow} ease-in-out;\n\n svg {\n transition: ${durations.fast} ease-in-out;\n transform: ${({ expanded }) =>\n expanded ? 'rotateX(180deg)' : 'rotateX(0deg)'};\n margin-right: ${rem(24)};\n\n ${mediaOnly.xs`\n margin-right: ${rem(8)};\n `};\n }\n`\n\nconst OutLine = styled.div`\n content: '';\n position: absolute;\n height: 100%;\n bottom: 0;\n left: 0;\n right: 0;\n ${mediaQuery.sm`\n left: 0;\n right: 0;\n `};\n`\n\nconst ShadowBackdrop = styled.div`\n transition: box-shadow 0.2s;\n content: '';\n position: absolute;\n outline-offset: 1px;\n height: 100%;\n bottom: 0;\n left: 0;\n right: 0;\n ${mediaQuery.sm`\n left: 0;\n right: 0;\n `};\n`\n\nconst TitleWrapper = styled.h4`\n position: relative;\n padding: ${rem(30)} 0;\n margin-bottom: ${({ expanded }) => (expanded ? rem(8) : 0)};\n display: flex;\n justify-content: space-between;\n outline: none;\n transition: color ${durations.slow} ease-in-out;\n border-top: 1px solid;\n\n ${({ isArticle }) =>\n `border-top-color: ${isArticle ? '#e6e6e6' : '#E3E3E3'};`}\n\n ${/* sc-selector */ IconContainer} {\n color: ${({ theme }) => theme.primary};\n }\n\n &:hover {\n color: ${color.accent};\n\n ${/* sc-selector */ ShadowBackdrop} {\n box-shadow: ${p => (p.showShadow ? effects().cardShadow : null)};\n }\n\n ${/* sc-selector */ IconContainer} {\n color: ${({ theme }) => theme.primary};\n }\n }\n\n &:focus {\n outline: 1px dashed currentColor;\n }\n\n :focus:not([data-focus-visible-added]) {\n outline: none;\n }\n\n .js-focus-visible & :focus:not([data-focus-visible-added]) {\n ${/* sc-selector */ ShadowBackdrop} {\n outline: none;\n }\n }\n`\n\ntype Props = {\n id: string,\n titleId: string,\n controlsId: string,\n children?: React.Node,\n title?: string,\n expanded: boolean,\n isArticle?: boolean,\n isResting?: boolean,\n isLast?: boolean,\n iconStyle?: Object,\n titleStyle?: Object,\n titleInnerStyle?: Object,\n hoverShadow?: boolean,\n animateTitle?: boolean,\n onToggle?: (id: string) => void,\n theme?: string,\n invert?: boolean,\n}\n\nclass AccordionItemTitle extends React.PureComponent {\n static displayName = 'AccordionItemTitle'\n static defaultProps = { expanded: false, isLast: false }\n\n handlePreventDoubleClick = (event: SyntheticMouseEvent) => {\n if (event.detail > 1) {\n event.preventDefault()\n }\n }\n\n handleClick = () => {\n const { id, onToggle } = this.props\n if (onToggle) onToggle(id)\n }\n\n handleKeyPress = (evt: SyntheticKeyboardEvent) => {\n if (evt.charCode === 13 || evt.charCode === 32) {\n evt.preventDefault()\n this.handleClick()\n }\n }\n\n render() {\n const {\n titleId,\n controlsId,\n expanded,\n title,\n children,\n isResting,\n isArticle,\n iconStyle,\n titleStyle,\n hoverShadow,\n invert,\n } = this.props\n\n const iconStyling = iconStyle || {}\n const titleStyling = titleStyle || {}\n const activeTheme = this.props.theme\n\n if (hoverShadow && !titleStyling.paddingLeft) {\n titleStyling.paddingLeft = rem(24)\n }\n\n return (\n \n {isDesktop => (\n \n {hoverShadow ? : }\n \n {children || title}\n \n \n \n \n \n )}\n \n )\n }\n}\n\nexport default AccordionItemTitle\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport { rem } from 'polished'\nimport { effects } from '../../styles/theme'\nimport CtaLink from '../CtaLink/CtaLink'\nimport { mediaOnly, mediaQuery } from '../../styles/media'\nimport { animated, Transition } from 'react-spring/renderprops.cjs'\nimport { presets } from '../../styles/animations'\nimport type { LinkViewModel } from '../../types/LinkViewModel'\n\ntype Props = {\n id: string,\n labeledById: string,\n expanded: boolean,\n isResting: boolean,\n itemBodyStyle: Object,\n isArticle?: boolean,\n cta?: LinkViewModel,\n children: React.Node,\n hoverShadow?: boolean,\n onResting?: () => void,\n onStart?: () => void,\n invert?: boolean,\n isMenu?: boolean,\n}\n\nconst Container = styled(animated.div)`\n color: ${({ theme }) => theme.text};\n overflow: hidden;\n border-bottom: 1px solid transparent;\n ${({ expanded }) =>\n !expanded\n ? `border-bottom-color: #E3E3E3;`\n : 'border-bottom-color: transparent'};\n\n ${mediaQuery.sm`\n overflow: unset;\n `}\n\n p {\n font-weight: 300;\n }\n`\n\nconst Wrapper = styled.div`\n background-color: ${({ theme, isMenu }) =>\n isMenu ? theme.accordionBodyStyle : 'transparent'};\n\n //border-top: ${({ theme }) =>\n effects(theme).borderPositive}; //TODO: Check if it has side-effects\n`\n\nconst FooterLink = styled.div`\n display: flex;\n justify-content: flex-end;\n padding-bottom: ${rem(30)};\n\n ${mediaOnly.xs`\n padding-right: 0;\n margin-right: -12px;\n `};\n`\n\nfunction AccordionItemBody(props: Props) {\n const {\n expanded,\n isResting,\n id,\n labeledById,\n children,\n cta,\n itemBodyStyle,\n hoverShadow,\n invert,\n isMenu,\n } = props\n\n const itemBodyStyling = { ...itemBodyStyle } || {}\n\n if (hoverShadow && itemBodyStyling.paddingLeft === undefined) {\n itemBodyStyling.paddingLeft = rem(24)\n }\n\n if (hoverShadow && itemBodyStyling.paddingRight === undefined) {\n itemBodyStyling.paddingRight = rem(24)\n }\n\n return (\n \n \n {() => style => (\n \n isResting ? 'auto' : height,\n ),\n ...itemBodyStyling,\n }}\n >\n {children}\n {cta && (\n \n \n \n )}\n \n )}\n \n \n )\n}\nAccordionItemBody.displayName = 'AccordionItemBody'\n\n// $FlowFixMe\nexport default React.memo(AccordionItemBody)\n","// @flow\nimport * as React from 'react'\nimport consecutive from 'consecutive'\n\nimport type { LinkViewModel } from '../../types/LinkViewModel'\nimport { AccordionContext } from './AccordionContainer'\n\nimport AccordionItemTitle from './AccordionItemTitle'\nimport AccordionItemBody from './AccordionItemBody'\nimport styled from 'styled-components'\nimport { color } from '../../styles/theme'\n\nexport type Props = {\n id?: string,\n disabled: boolean,\n title?: string,\n isArticle?: boolean,\n isLast?: boolean,\n cta?: LinkViewModel,\n children: React.Node,\n iconStyle?: Object,\n titleStyle?: Object,\n titleInnerStyle?: Object,\n itemBodyStyle?: Object,\n hoverShadow?: boolean,\n animateTitle?: boolean,\n invert?: boolean,\n isMenu?: boolean,\n isOnFooter?: boolean,\n prefix?: string,\n}\n\ntype State = {\n isResting: boolean,\n expanded: boolean,\n}\n\nlet nextUuid = consecutive()\nexport function resetNextUuid() {\n nextUuid = consecutive()\n}\n\nconst Wrapper = styled.div`\n > :first-child {\n border-top: 0;\n }\n\n > :last-child {\n ${({ isArticle, theme, isOnFooter }) =>\n `border-bottom: ${\n isOnFooter\n ? 0\n : theme.name === 'lgbt' && !isArticle\n ? `1px solid ${color.grey}`\n : isArticle\n ? '1px solid #e6e6e6'\n : '1px solid #E3E3E3'\n };`}\n }\n`\n\nclass AccordionItem extends React.Component {\n static contextType = AccordionContext\n static defaultProps = {\n disabled: false,\n expanded: false,\n }\n\n state = {\n isResting: true,\n expanded: false,\n }\n\n uuid = nextUuid()\n\n handleAnimating = () => {\n this.setState({\n isResting: false,\n })\n }\n\n handleResting = () => {\n this.setState({\n isResting: true,\n })\n }\n\n render() {\n const {\n children,\n title,\n cta,\n isArticle,\n isLast,\n iconStyle,\n titleStyle,\n titleInnerStyle,\n itemBodyStyle,\n hoverShadow,\n animateTitle,\n invert,\n isMenu,\n isOnFooter,\n prefix,\n } = this.props\n const idPrefix = prefix ? prefix : ''\n const keyGen = consecutive()\n const id = this.props.id || `accordion-${this.uuid}-${keyGen()}`\n const titleId = `${idPrefix}__acc__item-${id}-${keyGen()}`\n const bodyId = `${idPrefix}__acc__body-${id}-${keyGen()}`\n const expanded = this.context.selected.includes(id)\n\n return (\n \n \n \n {children}\n \n \n )\n }\n}\n\nexport default AccordionItem\n","//@flow\nimport { atom } from 'jotai'\n\n// create atoms\nexport const formSessionIdAtom = atom('')\nexport const formSessionIsReceiptStepAtom = atom(false)\nexport const validFormVersionAtom = atom(true)\nexport const showCookieDisclaimerAtom = atom(false)\nexport const videoFilterAtom = atom('')\n","// @flow\nimport * as React from 'react'\n\nconst ZoomIcon = ({ style, ...rest }: Object) => (\n \n \n \n \n \n \n)\n\nexport default ZoomIcon\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _objectWithoutPropertiesLoose = _interopDefault(require('@babel/runtime/helpers/objectWithoutPropertiesLoose'));\nvar _inheritsLoose = _interopDefault(require('@babel/runtime/helpers/inheritsLoose'));\nvar _assertThisInitialized = _interopDefault(require('@babel/runtime/helpers/assertThisInitialized'));\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar ReactDOM = _interopDefault(require('react-dom'));\n\nvar bugfixes = undefined;\nvar applyAnimatedValues = undefined;\nvar colorNames = [];\nvar requestFrame = function requestFrame(cb) {\n return typeof window !== 'undefined' && window.requestAnimationFrame(cb);\n};\nvar cancelFrame = function cancelFrame(cb) {\n return typeof window !== 'undefined' && window.cancelAnimationFrame(cb);\n};\nvar interpolation = undefined;\nvar now = function now() {\n return Date.now();\n};\nvar defaultElement = undefined;\nvar createAnimatedStyle = undefined;\nvar injectApplyAnimatedValues = function injectApplyAnimatedValues(fn, transform) {\n return applyAnimatedValues = {\n fn: fn,\n transform: transform\n };\n};\nvar injectColorNames = function injectColorNames(names) {\n return colorNames = names;\n};\nvar injectBugfixes = function injectBugfixes(fn) {\n return bugfixes = fn;\n};\nvar injectInterpolation = function injectInterpolation(cls) {\n return interpolation = cls;\n};\nvar injectFrame = function injectFrame(raf, caf) {\n var _ref;\n\n return _ref = [raf, caf], requestFrame = _ref[0], cancelFrame = _ref[1], _ref;\n};\nvar injectNow = function injectNow(nowFn) {\n return now = nowFn;\n};\nvar injectDefaultElement = function injectDefaultElement(el) {\n return defaultElement = el;\n};\nvar injectCreateAnimatedStyle = function injectCreateAnimatedStyle(factory) {\n return createAnimatedStyle = factory;\n};\n\nvar Globals = /*#__PURE__*/Object.freeze({\n get bugfixes () { return bugfixes; },\n get applyAnimatedValues () { return applyAnimatedValues; },\n get colorNames () { return colorNames; },\n get requestFrame () { return requestFrame; },\n get cancelFrame () { return cancelFrame; },\n get interpolation () { return interpolation; },\n get now () { return now; },\n get defaultElement () { return defaultElement; },\n get createAnimatedStyle () { return createAnimatedStyle; },\n injectApplyAnimatedValues: injectApplyAnimatedValues,\n injectColorNames: injectColorNames,\n injectBugfixes: injectBugfixes,\n injectInterpolation: injectInterpolation,\n injectFrame: injectFrame,\n injectNow: injectNow,\n injectDefaultElement: injectDefaultElement,\n injectCreateAnimatedStyle: injectCreateAnimatedStyle\n});\n\nvar Animated =\n/*#__PURE__*/\nfunction () {\n function Animated() {}\n\n var _proto = Animated.prototype;\n\n _proto.attach = function attach() {};\n\n _proto.detach = function detach() {};\n\n _proto.getValue = function getValue() {};\n\n _proto.getAnimatedValue = function getAnimatedValue() {\n return this.getValue();\n };\n\n _proto.addChild = function addChild(child) {};\n\n _proto.removeChild = function removeChild(child) {};\n\n _proto.getChildren = function getChildren() {\n return [];\n };\n\n return Animated;\n}();\n\nvar getValues = function getValues(object) {\n return Object.keys(object).map(function (k) {\n return object[k];\n });\n};\n\nvar AnimatedWithChildren =\n/*#__PURE__*/\nfunction (_Animated) {\n _inheritsLoose(AnimatedWithChildren, _Animated);\n\n function AnimatedWithChildren() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;\n _this.children = [];\n\n _this.getChildren = function () {\n return _this.children;\n };\n\n _this.getPayload = function (index) {\n if (index === void 0) {\n index = undefined;\n }\n\n return index !== void 0 && _this.payload ? _this.payload[index] : _this.payload || _assertThisInitialized(_this);\n };\n\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.addChild = function addChild(child) {\n if (this.children.length === 0) this.attach();\n this.children.push(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n var index = this.children.indexOf(child);\n this.children.splice(index, 1);\n if (this.children.length === 0) this.detach();\n };\n\n return AnimatedWithChildren;\n}(Animated);\nvar AnimatedArrayWithChildren =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedArrayWithChildren, _AnimatedWithChildren);\n\n function AnimatedArrayWithChildren() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _AnimatedWithChildren.call.apply(_AnimatedWithChildren, [this].concat(args)) || this;\n _this2.payload = [];\n\n _this2.getAnimatedValue = function () {\n return _this2.getValue();\n };\n\n _this2.attach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.addChild(_assertThisInitialized(_this2));\n });\n };\n\n _this2.detach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.removeChild(_assertThisInitialized(_this2));\n });\n };\n\n return _this2;\n }\n\n return AnimatedArrayWithChildren;\n}(AnimatedWithChildren);\nvar AnimatedObjectWithChildren =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren2) {\n _inheritsLoose(AnimatedObjectWithChildren, _AnimatedWithChildren2);\n\n function AnimatedObjectWithChildren() {\n var _this3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n _this3 = _AnimatedWithChildren2.call.apply(_AnimatedWithChildren2, [this].concat(args)) || this;\n _this3.payload = {};\n\n _this3.getAnimatedValue = function () {\n return _this3.getValue(true);\n };\n\n _this3.attach = function () {\n return getValues(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.addChild(_assertThisInitialized(_this3));\n });\n };\n\n _this3.detach = function () {\n return getValues(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.removeChild(_assertThisInitialized(_this3));\n });\n };\n\n return _this3;\n }\n\n var _proto2 = AnimatedObjectWithChildren.prototype;\n\n _proto2.getValue = function getValue(animated) {\n if (animated === void 0) {\n animated = false;\n }\n\n var payload = {};\n\n for (var key in this.payload) {\n var value = this.payload[key];\n if (animated && !(value instanceof Animated)) continue;\n payload[key] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n }\n\n return payload;\n };\n\n return AnimatedObjectWithChildren;\n}(AnimatedWithChildren);\n\nvar AnimatedStyle =\n/*#__PURE__*/\nfunction (_AnimatedObjectWithCh) {\n _inheritsLoose(AnimatedStyle, _AnimatedObjectWithCh);\n\n function AnimatedStyle(style) {\n var _this;\n\n _this = _AnimatedObjectWithCh.call(this) || this;\n style = style || {};\n if (style.transform && !(style.transform instanceof Animated)) style = applyAnimatedValues.transform(style);\n _this.payload = style;\n return _this;\n }\n\n return AnimatedStyle;\n}(AnimatedObjectWithChildren);\n\n// http://www.w3.org/TR/css3-color/#svg-color\nvar 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\nvar Interpolation =\n/*#__PURE__*/\nfunction () {\n function Interpolation() {}\n\n // Default config = config, args\n // Short config = range, output, extrapolate\n Interpolation.create = function create(config, output, extra) {\n if (typeof config === 'function') return config;else if (interpolation && config.output && typeof config.output[0] === 'string') return interpolation(config);else if (Array.isArray(config)) return Interpolation.create({\n range: config,\n output: output,\n extrapolate: extra || 'extend'\n });\n var outputRange = config.output;\n var inputRange = config.range || [0, 1];\n\n var easing = config.easing || function (t) {\n return t;\n };\n\n var extrapolateLeft = 'extend';\n var map = config.map;\n if (config.extrapolateLeft !== undefined) extrapolateLeft = config.extrapolateLeft;else if (config.extrapolate !== undefined) extrapolateLeft = config.extrapolate;\n var extrapolateRight = 'extend';\n if (config.extrapolateRight !== undefined) extrapolateRight = config.extrapolateRight;else if (config.extrapolate !== undefined) extrapolateRight = config.extrapolate;\n return function (input) {\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, map);\n };\n };\n\n return Interpolation;\n}();\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n var result = map ? map(input) : input; // Extrapolate\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; // Input Range\n\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n result = easing(result); // Output Range\n\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) {\n if (inputRange[i] >= input) break;\n }\n\n return i - 1;\n}\n\n// const INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n return '\\\\(\\\\s*(' + Array.prototype.slice.call(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n if (colors.hasOwnProperty(color)) return colors[color];\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff) >>> // a\n 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\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] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff) >>> // a\n 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4])) >>> // a\n 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 var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var 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 var 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 var int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n var 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 // parseFloat conveniently ignores the final %\n var 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 var int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n var r = (int32Color & 0xff000000) >>> 24;\n var g = (int32Color & 0x00ff0000) >>> 16;\n var b = (int32Color & 0x0000ff00) >>> 8;\n var a = (int32Color & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nvar stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nvar colorNamesRegex = new RegExp(\"(\" + Object.keys(colors).join('|') + \")\", 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nfunction createInterpolation(config) {\n // Replace colors with rgba\n var outputRange = config.output.map(function (rangeValue) {\n return rangeValue.replace(colorRegex, colorToRgba);\n }).map(function (rangeValue) {\n return rangeValue.replace(colorNamesRegex, colorToRgba);\n }); // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n value.match(stringShapeRegex).forEach(function (number, i) {\n return outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex).map(function (value, i) {\n return Interpolation.create(_extends({}, config, {\n output: outputRanges[i]\n }));\n });\n return function (input) {\n var i = 0;\n return outputRange[0] // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n .replace(stringShapeRegex, function () {\n return interpolations[i++](input);\n }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (_, p1, p2, p3, p4) {\n return \"rgba(\" + Math.round(p1) + \", \" + Math.round(p2) + \", \" + Math.round(p3) + \", \" + p4 + \")\";\n });\n };\n}\n\nvar AnimatedInterpolation =\n/*#__PURE__*/\nfunction (_AnimatedArrayWithChi) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedArrayWithChi);\n\n function AnimatedInterpolation(parents, _config, _arg) {\n var _this;\n\n _this = _AnimatedArrayWithChi.call(this) || this;\n\n _this.getValue = function () {\n var _this2;\n\n return (_this2 = _this).calc.apply(_this2, _this.payload.map(function (value) {\n return value.getValue();\n }));\n };\n\n _this.updateConfig = function (config, arg) {\n return _this.calc = Interpolation.create(config, arg);\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.payload = // AnimatedArrays should unfold, except AnimatedInterpolation which is taken as is\n parents instanceof AnimatedArrayWithChildren && !parents.updateConfig ? parents.payload : Array.isArray(parents) ? parents : [parents];\n _this.calc = Interpolation.create(_config, _arg);\n return _this;\n }\n\n return AnimatedInterpolation;\n}(AnimatedArrayWithChildren);\nvar interpolate$1 = function interpolate(parents, config, arg) {\n return parents && new AnimatedInterpolation(parents, config, arg);\n};\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction findAnimatedStyles(node, styles) {\n if (typeof node.update === 'function') styles.add(node);else node.getChildren().forEach(function (child) {\n return findAnimatedStyles(child, styles);\n });\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n */\n\n\nvar AnimatedValue =\n/*#__PURE__*/\nfunction (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(_value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n\n _this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n _this.value = value;\n if (flush) _this.flush();\n };\n\n _this.getValue = function () {\n return _this.value;\n };\n\n _this.updateStyles = function () {\n return findAnimatedStyles(_assertThisInitialized(_this), _this.animatedStyles);\n };\n\n _this.updateValue = function (value) {\n return _this.flush(_this.value = value);\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.value = _value;\n _this.animatedStyles = new Set();\n _this.done = false;\n _this.startPosition = _value;\n _this.lastPosition = _value;\n _this.lastVelocity = undefined;\n _this.lastTime = undefined;\n _this.controller = undefined;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.flush = function flush() {\n if (this.animatedStyles.size === 0) this.updateStyles();\n this.animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n };\n\n _proto.prepare = function prepare(controller) {\n // Values stay loyal to their original controller, this is also a way to\n // detect trailing values originating from a foreign controller\n if (this.controller === undefined) this.controller = controller;\n\n if (this.controller === controller) {\n this.startPosition = this.value;\n this.lastPosition = this.value;\n this.lastVelocity = controller.isActive ? this.lastVelocity : undefined;\n this.lastTime = controller.isActive ? this.lastTime : undefined;\n this.done = false;\n this.animatedStyles.clear();\n }\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nvar AnimatedArray =\n/*#__PURE__*/\nfunction (_AnimatedArrayWithChi) {\n _inheritsLoose(AnimatedArray, _AnimatedArrayWithChi);\n\n function AnimatedArray(array) {\n var _this;\n\n _this = _AnimatedArrayWithChi.call(this) || this;\n\n _this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n if (Array.isArray(value)) {\n if (value.length === _this.payload.length) value.forEach(function (v, i) {\n return _this.payload[i].setValue(v, flush);\n });\n } else _this.payload.forEach(function (v, i) {\n return _this.payload[i].setValue(value, flush);\n });\n };\n\n _this.getValue = function () {\n return _this.payload.map(function (v) {\n return v.getValue();\n });\n };\n\n _this.interpolate = function (config, arg) {\n return new AnimatedInterpolation(_assertThisInitialized(_this), config, arg);\n };\n\n _this.payload = array.map(function (n) {\n return new AnimatedValue(n);\n });\n return _this;\n }\n\n return AnimatedArray;\n}(AnimatedArrayWithChildren);\n\nfunction withDefault(value, defaultValue) {\n return value === undefined || value === null ? defaultValue : value;\n}\nfunction toArray(a) {\n return a !== void 0 ? Array.isArray(a) ? a : [a] : [];\n}\nfunction shallowEqual(a, b) {\n if (typeof a !== typeof b) return false;\n if (typeof a === 'string' || typeof a === 'number') return a === b;\n var i;\n\n for (i in a) {\n if (!(i in b)) return false;\n }\n\n for (i in b) {\n if (a[i] !== b[i]) return false;\n }\n\n return i === void 0 ? a === b : true;\n}\nfunction callProp(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return typeof obj === 'function' ? obj.apply(void 0, args) : obj;\n}\nfunction getValues$1(object) {\n return Object.keys(object).map(function (k) {\n return object[k];\n });\n}\nfunction getForwardProps(props) {\n var to = props.to,\n from = props.from,\n config = props.config,\n native = props.native,\n onStart = props.onStart,\n onRest = props.onRest,\n onFrame = props.onFrame,\n children = props.children,\n reset = props.reset,\n reverse = props.reverse,\n force = props.force,\n immediate = props.immediate,\n impl = props.impl,\n inject = props.inject,\n delay = props.delay,\n attach = props.attach,\n destroyed = props.destroyed,\n interpolateTo = props.interpolateTo,\n autoStart = props.autoStart,\n ref = props.ref,\n forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"native\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"impl\", \"inject\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"autoStart\", \"ref\"]);\n\n return forward;\n}\nfunction interpolateTo(props) {\n var forward = getForwardProps(props);\n var rest = Object.keys(props).reduce(function (a, k) {\n var _extends2;\n\n return forward[k] !== void 0 ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));\n }, {});\n return _extends({\n to: forward\n }, rest);\n}\nfunction convertToAnimatedValue(acc, _ref) {\n var _extends3;\n\n var name = _ref[0],\n value = _ref[1];\n return _extends({}, acc, (_extends3 = {}, _extends3[name] = new (Array.isArray(value) ? AnimatedArray : AnimatedValue)(value), _extends3));\n}\nfunction convertValues(props) {\n var from = props.from,\n to = props.to,\n native = props.native;\n var allProps = Object.entries(_extends({}, from, to));\n return native ? allProps.reduce(convertToAnimatedValue, {}) : _extends({}, from, to);\n}\nfunction handleRef(ref, forward) {\n if (forward) {\n // If it's a function, assume it's a ref callback\n if (typeof forward === 'function') forward(ref);else if (typeof forward === 'object') {\n // If it's an object and has a 'current' property, assume it's a ref object\n forward.current = ref;\n }\n }\n\n return ref;\n}\n\nvar check = function check(value) {\n return value === 'auto';\n};\n\nvar overwrite = function overwrite(width, height) {\n return function (acc, _ref) {\n var _extends2;\n\n var name = _ref[0],\n value = _ref[1];\n return _extends({}, acc, (_extends2 = {}, _extends2[name] = value === 'auto' ? ~name.indexOf('height') ? height : width : value, _extends2));\n };\n};\n\nfunction fixAuto(props, callback) {\n var from = props.from,\n to = props.to,\n children = props.children; // Dry-route props back if nothing's using 'auto' in there\n // TODO: deal with \"null\"\n\n if (!(getValues$1(to).some(check) || getValues$1(from).some(check))) return; // Fetch render v-dom\n\n var element = children(convertValues(props)); // A spring can return undefined/null, check against that (#153)\n\n if (!element) return; // Or it could be an array (#346) ...\n\n if (Array.isArray(element)) element = {\n type: 'div',\n props: {\n children: element\n } // Extract styles\n\n };\n var elementStyles = element.props.style; // Return v.dom with injected ref\n\n return React__default.createElement(element.type, _extends({\n key: element.key ? element.key : undefined\n }, element.props, {\n style: _extends({}, elementStyles, {\n position: 'absolute',\n visibility: 'hidden'\n }),\n ref: function ref(_ref2) {\n if (_ref2) {\n // Once it's rendered out, fetch bounds (minus padding/margin/borders)\n var node = ReactDOM.findDOMNode(_ref2);\n var width, height;\n var cs = getComputedStyle(node);\n\n if (cs.boxSizing === 'border-box') {\n width = node.offsetWidth;\n height = node.offsetHeight;\n } else {\n var paddingX = parseFloat(cs.paddingLeft || 0) + parseFloat(cs.paddingRight || 0);\n var paddingY = parseFloat(cs.paddingTop || 0) + parseFloat(cs.paddingBottom || 0);\n var borderX = parseFloat(cs.borderLeftWidth || 0) + parseFloat(cs.borderRightWidth || 0);\n var borderY = parseFloat(cs.borderTopWidth || 0) + parseFloat(cs.borderBottomWidth || 0);\n width = node.offsetWidth - paddingX - borderX;\n height = node.offsetHeight - paddingY - borderY;\n }\n\n var convert = overwrite(width, height);\n callback(_extends({}, props, {\n from: Object.entries(from).reduce(convert, from),\n to: Object.entries(to).reduce(convert, to)\n }));\n }\n }\n }));\n}\n\nvar 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 // SVG-related properties\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\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nvar prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {\n prefixes.forEach(function (prefix) {\n return acc[prefixKey(prefix, prop)] = acc[prop];\n });\n return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n return ('' + value).trim();\n}\n\nvar attributeCache = {};\ninjectCreateAnimatedStyle(function (style) {\n return new AnimatedStyle(style);\n});\ninjectDefaultElement('div');\ninjectInterpolation(createInterpolation);\ninjectColorNames(colors);\ninjectBugfixes(fixAuto);\ninjectApplyAnimatedValues(function (instance, props) {\n if (instance.nodeType && instance.setAttribute !== undefined) {\n var style = props.style,\n children = props.children,\n scrollTop = props.scrollTop,\n scrollLeft = props.scrollLeft,\n attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n if (children !== void 0) instance.textContent = children; // Set styles ...\n\n for (var styleName in style) {\n if (!style.hasOwnProperty(styleName)) continue;\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n if (styleName === 'float') styleName = 'cssFloat';\n if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n } // Set attributes ...\n\n\n for (var name in attributes) {\n // Attributes are written in dash case\n var dashCase = attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {\n return '-' + n.toLowerCase();\n }));\n if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n }\n } else return false;\n}, function (style) {\n return style;\n});\n\nvar active = false;\nvar controllers = new Set();\n\nvar frameLoop = function frameLoop() {\n var time = now();\n\n for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var controller = _ref;\n var isDone = true;\n var noChange = true;\n\n for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n var config = controller.configs[configIdx];\n var endOfAnimation = void 0,\n lastTime = void 0;\n\n for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n if (animation.done) continue;\n var from = config.fromValues[valIdx];\n var to = config.toValues[valIdx];\n var position = animation.lastPosition;\n var isAnimated = to instanceof Animated;\n\n var _velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n\n if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n if (config.immediate || !isAnimated && !config.decay && from === to) {\n animation.updateValue(to);\n animation.done = true;\n continue;\n } // Doing delay here instead of setTimeout is one async worry less\n\n\n if (config.delay && time - controller.startTime < config.delay) {\n isDone = false;\n continue;\n } // Flag change\n\n\n noChange = false; // Break animation when string values are involved\n\n if (typeof from === 'string' || typeof to === 'string') {\n animation.updateValue(to);\n animation.done = true;\n continue;\n }\n\n if (config.duration !== void 0) {\n /** Duration easing */\n position = from + config.easing((time - controller.startTime - config.delay) / config.duration) * (to - from);\n endOfAnimation = time >= controller.startTime + config.delay + config.duration;\n } else if (config.decay) {\n /** Decay easing */\n position = from + _velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - controller.startTime)));\n endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n if (endOfAnimation) to = position;\n } else {\n /** Spring easing */\n lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n _velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n var numSteps = Math.floor(time - lastTime);\n\n for (var i = 0; i < numSteps; ++i) {\n var force = -config.tension * (position - to);\n var damping = -config.friction * _velocity;\n var acceleration = (force + damping) / config.mass;\n _velocity = _velocity + acceleration * 1 / 1000;\n position = position + _velocity * 1 / 1000;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n var isVelocity = Math.abs(_velocity) <= config.precision;\n var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n animation.lastVelocity = _velocity;\n animation.lastTime = time;\n } // Trails aren't done until their parents conclude\n\n\n if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n if (endOfAnimation) {\n // Ensure that we end up with a round value\n if (animation.value !== to) position = to;\n animation.done = true;\n } else isDone = false;\n\n animation.updateValue(position);\n animation.lastPosition = position;\n } // Keep track of updated values only when necessary\n\n\n if (controller.props.onFrame || !controller.props.native) controller.animatedProps[config.name] = config.interpolation.getValue();\n } // Update callbacks in the end of the frame\n\n\n if (controller.props.onFrame || !controller.props.native) {\n if (!controller.props.native && controller.onUpdate) controller.onUpdate();\n if (controller.props.onFrame) controller.props.onFrame(controller.animatedProps);\n } // Either call onEnd or next frame\n\n\n if (isDone) {\n controllers.delete(controller);\n controller.debouncedOnEnd({\n finished: true,\n noChange: noChange\n });\n }\n } // Loop over as long as there are controllers ...\n\n\n if (controllers.size) requestFrame(frameLoop);else active = false;\n};\n\nvar addController = function addController(controller) {\n if (!controllers.has(controller)) {\n controllers.add(controller);\n if (!active) requestFrame(frameLoop);\n active = true;\n }\n};\n\nvar removeController = function removeController(controller) {\n if (controllers.has(controller)) {\n controllers.delete(controller);\n }\n};\n\nvar Controller =\n/*#__PURE__*/\nfunction () {\n function Controller(props, config) {\n var _this = this;\n\n if (config === void 0) {\n config = {\n native: true,\n interpolateTo: true,\n autoStart: true\n };\n }\n\n this.getValues = function () {\n return _this.props.native ? _this.interpolations : _this.animatedProps;\n };\n\n this.dependents = new Set();\n this.isActive = false;\n this.hasChanged = false;\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.animatedProps = {};\n this.configs = [];\n this.frame = undefined;\n this.startTime = undefined;\n this.lastTime = undefined;\n this.update(_extends({}, props, config));\n }\n\n var _proto = Controller.prototype;\n\n _proto.update = function update(props) {\n var _this2 = this;\n\n this.props = _extends({}, this.props, props);\n\n var _ref = this.props.interpolateTo ? interpolateTo(this.props) : this.props,\n _ref$from = _ref.from,\n from = _ref$from === void 0 ? {} : _ref$from,\n _ref$to = _ref.to,\n to = _ref$to === void 0 ? {} : _ref$to,\n _ref$config = _ref.config,\n config = _ref$config === void 0 ? {} : _ref$config,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay,\n reverse = _ref.reverse,\n attach = _ref.attach,\n reset = _ref.reset,\n immediate = _ref.immediate,\n autoStart = _ref.autoStart,\n ref = _ref.ref; // Reverse values when requested\n\n\n if (reverse) {\n var _ref2 = [to, from];\n from = _ref2[0];\n to = _ref2[1];\n }\n\n this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n var target = attach && attach(this); // Reset merged props when necessary\n\n var extra = reset ? {} : this.merged; // This will collect all props that were ever set\n\n this.merged = _extends({}, from, extra, to); // Reduces input { name: value } pairs into animated values\n\n this.animations = Object.entries(this.merged).reduce(function (acc, _ref3, i) {\n var name = _ref3[0],\n value = _ref3[1];\n // Issue cached entries, except on reset\n var entry = !reset && acc[name] || {}; // Figure out what the value is supposed to be\n\n var isNumber = typeof value === 'number';\n var isString = typeof value === 'string' && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n var isArray = !isNumber && !isString && Array.isArray(value);\n var fromValue = from[name] !== undefined ? from[name] : value;\n var toValue = isNumber || isArray ? value : isString ? value : 1;\n var toConfig = callProp(config, name);\n if (target) toValue = target.animations[name].parent; // Detect changes, animated values will be checked in the raf-loop\n\n if (toConfig.decay !== void 0 || !shallowEqual(entry.changes, value)) {\n var _extends2;\n\n _this2.hasChanged = true;\n var parent, interpolation$$1;\n if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedArray(fromValue);else {\n var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n\n if (entry.parent) {\n parent = entry.parent;\n parent.setValue(0, false);\n } else parent = new AnimatedValue(0);\n\n var range = {\n output: [prev !== void 0 ? prev : fromValue, value]\n };\n\n if (entry.interpolation) {\n interpolation$$1 = entry.interpolation;\n entry.interpolation.updateConfig(range);\n } else interpolation$$1 = parent.interpolate(range);\n } // Set immediate values\n\n if (callProp(immediate, name)) parent.setValue(value, false); // Reset animated values\n\n var animatedValues = toArray(parent.getPayload());\n animatedValues.forEach(function (value) {\n return value.prepare(_this2);\n });\n return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {\n name: name,\n parent: parent,\n interpolation: interpolation$$1,\n animatedValues: animatedValues,\n changes: value,\n fromValues: toArray(parent.getValue()),\n toValues: toArray(target ? toValue.getPayload() : toValue),\n immediate: callProp(immediate, name),\n delay: withDefault(toConfig.delay, delay || 0),\n initialVelocity: withDefault(toConfig.velocity, 0),\n clamp: withDefault(toConfig.clamp, false),\n precision: withDefault(toConfig.precision, 0.01),\n tension: withDefault(toConfig.tension, 170),\n friction: withDefault(toConfig.friction, 26),\n mass: withDefault(toConfig.mass, 1),\n duration: toConfig.duration,\n easing: withDefault(toConfig.easing, function (t) {\n return t;\n }),\n decay: toConfig.decay\n }), _extends2));\n } else return acc;\n }, this.animations);\n\n if (this.hasChanged) {\n this.configs = getValues$1(this.animations);\n this.animatedProps = {};\n this.interpolations = {};\n\n for (var key in this.animations) {\n this.interpolations[key] = this.animations[key].interpolation;\n this.animatedProps[key] = this.animations[key].interpolation.getValue();\n }\n } // TODO: clean up ref in controller\n\n\n for (var _len = arguments.length, start = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n start[_key - 1] = arguments[_key];\n }\n\n if (!ref && (autoStart || start.length)) this.start.apply(this, start);\n var onEnd = start[0],\n onUpdate = start[1];\n this.onEnd = typeof onEnd === 'function' && onEnd;\n this.onUpdate = onUpdate;\n return this.getValues();\n };\n\n _proto.start = function start(onEnd, onUpdate) {\n var _this3 = this;\n\n this.startTime = now();\n if (this.isActive) this.stop();\n this.isActive = true;\n this.onEnd = typeof onEnd === 'function' && onEnd;\n this.onUpdate = onUpdate;\n if (this.props.onStart) this.props.onStart();\n addController(this);\n return new Promise(function (res) {\n return _this3.resolve = res;\n });\n };\n\n _proto.stop = function stop(finished) {\n if (finished === void 0) {\n finished = false;\n }\n\n // Reset collected changes since the animation has been stopped cold turkey\n if (finished) getValues$1(this.animations).forEach(function (a) {\n return a.changes = undefined;\n });\n this.debouncedOnEnd({\n finished: finished\n });\n };\n\n _proto.destroy = function destroy() {\n removeController(this);\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.animatedProps = {};\n this.configs = [];\n };\n\n _proto.debouncedOnEnd = function debouncedOnEnd(result) {\n removeController(this);\n this.isActive = false;\n var onEnd = this.onEnd;\n this.onEnd = null;\n if (onEnd) onEnd(result);\n if (this.resolve) this.resolve();\n this.resolve = null;\n };\n\n return Controller;\n}();\n\nvar AnimatedProps =\n/*#__PURE__*/\nfunction (_AnimatedObjectWithCh) {\n _inheritsLoose(AnimatedProps, _AnimatedObjectWithCh);\n\n function AnimatedProps(props, callback) {\n var _this;\n\n _this = _AnimatedObjectWithCh.call(this) || this;\n if (props.style) props = _extends({}, props, {\n style: createAnimatedStyle(props.style)\n });\n _this.payload = props;\n _this.update = callback;\n\n _this.attach();\n\n return _this;\n }\n\n return AnimatedProps;\n}(AnimatedObjectWithChildren);\n\nfunction createAnimatedComponent(Component) {\n var AnimatedComponent =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(AnimatedComponent, _React$Component);\n\n function AnimatedComponent(props) {\n var _this;\n\n _this = _React$Component.call(this) || this;\n\n _this.callback = function () {\n if (_this.node) {\n var didUpdate = applyAnimatedValues.fn(_this.node, _this.propsAnimated.getAnimatedValue(), _assertThisInitialized(_this));\n if (didUpdate === false) _this.forceUpdate();\n }\n };\n\n _this.attachProps(props);\n\n return _this;\n }\n\n var _proto = AnimatedComponent.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.propsAnimated && this.propsAnimated.detach();\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n var didUpdate = applyAnimatedValues.fn(this.node, props, this);\n if (didUpdate === false) this.forceUpdate();\n } // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that\n // changed. However, setNativeProps can only be implemented on leaf\n // native components. If you want to animate a composite component, you\n // need to re-render it. In this case, we have a fallback that uses\n // forceUpdate.\n ;\n\n _proto.attachProps = function attachProps(_ref) {\n var forwardRef = _ref.forwardRef,\n nextProps = _objectWithoutPropertiesLoose(_ref, [\"forwardRef\"]);\n\n var oldPropsAnimated = this.propsAnimated;\n this.propsAnimated = new AnimatedProps(nextProps, this.callback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n oldPropsAnimated && oldPropsAnimated.detach();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(props) {\n var style = props.style,\n nextProps = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n var _this$props = this.props,\n currentStyle = _this$props.style,\n currentProps = _objectWithoutPropertiesLoose(_this$props, [\"style\"]);\n\n if (!shallowEqual(currentProps, nextProps) || !shallowEqual(currentStyle, style)) {\n this.attachProps(props);\n return true;\n }\n\n return false;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$propsAnimated$g = this.propsAnimated.getValue(),\n scrollTop = _this$propsAnimated$g.scrollTop,\n scrollLeft = _this$propsAnimated$g.scrollLeft,\n animatedProps = _objectWithoutPropertiesLoose(_this$propsAnimated$g, [\"scrollTop\", \"scrollLeft\"]);\n\n return React__default.createElement(Component, _extends({}, animatedProps, {\n ref: function ref(node) {\n return _this2.node = handleRef(node, _this2.props.forwardRef);\n }\n }));\n };\n\n return AnimatedComponent;\n }(React__default.Component);\n\n return React__default.forwardRef(function (props, ref) {\n return React__default.createElement(AnimatedComponent, _extends({}, props, {\n forwardRef: ref\n }));\n });\n}\n\nvar 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};\n\nvar Spring =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Spring, _React$Component);\n\n function Spring() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n lastProps: {\n from: {},\n to: {}\n },\n propsChanged: false,\n internal: false\n };\n _this.controller = new Controller(null, null);\n _this.didUpdate = false;\n _this.didInject = false;\n _this.finished = true;\n\n _this.start = function () {\n _this.finished = false;\n var wasMounted = _this.mounted;\n\n _this.controller.start(function (props) {\n return _this.finish(_extends({}, props, {\n wasMounted: wasMounted\n }));\n }, _this.update);\n };\n\n _this.stop = function () {\n return _this.controller.stop(true);\n };\n\n _this.update = function () {\n return _this.mounted && _this.setState({\n internal: true\n });\n };\n\n _this.finish = function (_ref) {\n var finished = _ref.finished,\n noChange = _ref.noChange,\n wasMounted = _ref.wasMounted;\n _this.finished = true;\n\n if (_this.mounted && finished) {\n // Only call onRest if either we *were* mounted, or when there were changes\n if (_this.props.onRest && (wasMounted || !noChange)) _this.props.onRest(_this.controller.merged); // Restore end-state\n\n if (_this.mounted && _this.didInject) {\n _this.afterInject = convertValues(_this.props);\n\n _this.setState({\n internal: true\n });\n } // If we have an inject or values to apply after the animation we ping here\n\n\n if (_this.mounted && (_this.didInject || _this.props.after)) _this.setState({\n internal: true\n });\n _this.didInject = false;\n }\n };\n\n return _this;\n }\n\n var _proto = Spring.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n // componentDidUpdate isn't called on mount, we call it here to start animating\n this.componentDidUpdate();\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Stop all ongoing animtions\n this.mounted = false;\n this.stop();\n };\n\n Spring.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var internal = _ref2.internal,\n lastProps = _ref2.lastProps;\n // The following is a test against props that could alter the animation\n var from = props.from,\n to = props.to,\n reset = props.reset,\n force = props.force;\n var propsChanged = !shallowEqual(to, lastProps.to) || !shallowEqual(from, lastProps.from) || reset && !internal || force && !internal;\n return {\n propsChanged: propsChanged,\n lastProps: props,\n internal: false\n };\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var children = this.props.children;\n var propsChanged = this.state.propsChanged; // Inject phase -----------------------------------------------------------\n // Handle injected frames, for instance targets/web/fix-auto\n // An inject will return an intermediary React node which measures itself out\n // .. and returns a callback when the values sought after are ready, usually \"auto\".\n\n if (this.props.inject && propsChanged && !this.injectProps) {\n var frame = this.props.inject(this.props, function (injectProps) {\n // The inject frame has rendered, now let's update animations...\n _this2.injectProps = injectProps;\n\n _this2.setState({\n internal: true\n });\n }); // Render out injected frame\n\n if (frame) return frame;\n } // Update phase -----------------------------------------------------------\n\n\n if (this.injectProps || propsChanged) {\n // We can potentially cause setState, but we're inside render, the flag prevents that\n this.didInject = false; // Update animations, this turns from/to props into AnimatedValues\n // An update can occur on injected props, or when own-props have changed.\n\n if (this.injectProps) {\n this.controller.update(this.injectProps); // didInject is needed, because there will be a 3rd stage, where the original values\n // .. will be restored after the animation is finished. When someone animates towards\n // .. \"auto\", the end-result should be \"auto\", not \"1999px\", which would block nested\n // .. height/width changes.\n\n this.didInject = true;\n } else if (propsChanged) this.controller.update(this.props); // Flag an update that occured, componentDidUpdate will start the animation later on\n\n\n this.didUpdate = true;\n this.afterInject = undefined;\n this.injectProps = undefined;\n } // Render phase -----------------------------------------------------------\n // Render out raw values or AnimatedValues depending on \"native\"\n\n\n var values = _extends({}, this.controller.getValues(), this.afterInject);\n\n if (this.finished) values = _extends({}, values, this.props.after);\n return Object.keys(values).length ? children(values) : null;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // The animation has to start *after* render, since at that point the scene\n // .. graph should be established, so we do it here. Unfortunatelly, non-native\n // .. animations as well as \"auto\"-injects call forceUpdate, so it's causing a loop.\n // .. didUpdate prevents that as it gets set only on prop changes.\n if (this.didUpdate) this.start();\n this.didUpdate = false;\n };\n\n return Spring;\n}(React__default.Component);\n\nSpring.defaultProps = {\n from: {},\n to: {},\n config: config.default,\n native: false,\n immediate: false,\n reset: false,\n force: false,\n inject: bugfixes\n};\n\nvar Trail =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Trail, _React$PureComponent);\n\n function Trail() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.first = true;\n _this.instances = new Set();\n\n _this.hook = function (instance, index, length, reverse) {\n // Add instance to set\n _this.instances.add(instance); // Return undefined on the first index and from then on the previous instance\n\n\n if (reverse ? index === length - 1 : index === 0) return undefined;else return Array.from(_this.instances)[reverse ? index + 1 : index - 1];\n };\n\n return _this;\n }\n\n var _proto = Trail.prototype;\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n _children = _this$props.children,\n _this$props$from = _this$props.from,\n from = _this$props$from === void 0 ? {} : _this$props$from,\n initial = _this$props.initial,\n reverse = _this$props.reverse,\n keys = _this$props.keys,\n delay = _this$props.delay,\n onRest = _this$props.onRest,\n props = _objectWithoutPropertiesLoose(_this$props, [\"items\", \"children\", \"from\", \"initial\", \"reverse\", \"keys\", \"delay\", \"onRest\"]);\n\n var array = toArray(items);\n return toArray(array).map(function (item, i) {\n return React__default.createElement(Spring, _extends({\n onRest: i === 0 ? onRest : null,\n key: typeof keys === 'function' ? keys(item) : toArray(keys)[i],\n from: _this2.first && initial !== void 0 ? initial || {} : from\n }, props, {\n delay: i === 0 && delay || undefined,\n attach: function attach(instance) {\n return _this2.hook(instance, i, array.length, reverse);\n },\n children: function children(props) {\n var child = _children(item, i);\n\n return child ? child(props) : null;\n }\n }));\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n this.first = false;\n if (prevProps.items !== this.props.items) this.instances.clear();\n };\n\n return Trail;\n}(React__default.PureComponent);\n\nTrail.defaultProps = {\n keys: function keys(item) {\n return item;\n }\n};\n\nvar DEFAULT = '__default';\n\nvar KeyframesImpl =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(KeyframesImpl, _React$PureComponent);\n\n function KeyframesImpl() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.guid = 0;\n _this.state = {\n props: {},\n resolve: function resolve() {\n return null;\n },\n last: true,\n index: 0\n };\n\n _this.next = function (props, last, index) {\n if (last === void 0) {\n last = true;\n }\n\n if (index === void 0) {\n index = 0;\n }\n\n _this.running = true;\n return new Promise(function (resolve) {\n _this.mounted && _this.setState(function (state) {\n return {\n props: props,\n resolve: resolve,\n last: last,\n index: index\n };\n }, function () {\n return _this.running = false;\n });\n });\n };\n\n return _this;\n }\n\n var _proto = KeyframesImpl.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.componentDidUpdate({});\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(previous) {\n var _this2 = this;\n\n var _this$props = this.props,\n states = _this$props.states,\n f = _this$props.filter,\n state = _this$props.state;\n\n if (previous.state !== this.props.state || this.props.reset && !this.running || !shallowEqual(states[state], previous.states[previous.state])) {\n if (states && state && states[state]) {\n (function () {\n var localId = ++_this2.guid;\n var slots = states[state];\n\n if (slots) {\n if (Array.isArray(slots)) {\n var q = Promise.resolve();\n\n var _loop = function _loop(i) {\n var index = i;\n var slot = slots[index];\n var last = index === slots.length - 1;\n q = q.then(function () {\n return localId === _this2.guid && _this2.next(f(slot), last, index);\n });\n };\n\n for (var i = 0; i < slots.length; i++) {\n _loop(i);\n }\n } else if (typeof slots === 'function') {\n var index = 0;\n slots( // next\n function (props, last) {\n if (last === void 0) {\n last = false;\n }\n\n return localId === _this2.guid && _this2.next(f(props), last, index++);\n }, // cancel\n function () {\n return requestFrame(function () {\n return _this2.instance && _this2.instance.stop();\n });\n }, // ownprops\n _this2.props);\n } else {\n _this2.next(f(states[state]));\n }\n }\n })();\n }\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$state = this.state,\n props = _this$state.props,\n resolve = _this$state.resolve,\n last = _this$state.last,\n index = _this$state.index;\n if (!props || Object.keys(props).length === 0) return null;\n\n var _this$props2 = this.props,\n state = _this$props2.state,\n filter = _this$props2.filter,\n states = _this$props2.states,\n config = _this$props2.config,\n Component = _this$props2.primitive,\n _onRest = _this$props2.onRest,\n forwardRef = _this$props2.forwardRef,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"state\", \"filter\", \"states\", \"config\", \"primitive\", \"onRest\", \"forwardRef\"]); // Arrayed configs need an index to process\n\n\n if (Array.isArray(config)) config = config[index];\n return React__default.createElement(Component, _extends({\n ref: function ref(_ref) {\n return _this3.instance = handleRef(_ref, forwardRef);\n },\n config: config\n }, rest, props, {\n onRest: function onRest(args) {\n resolve(args);\n if (_onRest && last) _onRest(args);\n }\n }));\n };\n\n return KeyframesImpl;\n}(React__default.PureComponent);\n\nKeyframesImpl.defaultProps = {\n state: DEFAULT\n};\nvar Keyframes = React__default.forwardRef(function (props, ref) {\n return React__default.createElement(KeyframesImpl, _extends({}, props, {\n forwardRef: ref\n }));\n});\n\nKeyframes.create = function (primitive) {\n return function (states, filter) {\n var _states;\n\n if (filter === void 0) {\n filter = function filter(states) {\n return states;\n };\n }\n\n if (typeof states === 'function' || Array.isArray(states)) states = (_states = {}, _states[DEFAULT] = states, _states);\n return function (props) {\n return React__default.createElement(KeyframesImpl, _extends({\n primitive: primitive,\n states: states,\n filter: filter\n }, props));\n };\n };\n};\n\nKeyframes.Spring = function (states) {\n return Keyframes.create(Spring)(states, interpolateTo);\n};\n\nKeyframes.Trail = function (states) {\n return Keyframes.create(Trail)(states, interpolateTo);\n};\n\nvar guid = 0;\n\nvar get = function get(props) {\n var items = props.items,\n keys = props.keys,\n rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n items = toArray(items !== void 0 ? items : null);\n keys = typeof keys === 'function' ? items.map(keys) : toArray(keys); // Make sure numeric keys are interpreted as Strings (5 !== \"5\")\n\n return _extends({\n items: items,\n keys: keys.map(function (key) {\n return String(key);\n })\n }, rest);\n};\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inheritsLoose(Transition, _React$PureComponent);\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n function Transition(prevProps) {\n var _this;\n\n _this = _React$PureComponent.call(this, prevProps) || this;\n\n _this.destroyItem = function (item, key, state) {\n return function (values) {\n var _this$props = _this.props,\n onRest = _this$props.onRest,\n onDestroyed = _this$props.onDestroyed;\n\n if (_this.mounted) {\n onDestroyed && onDestroyed(item);\n\n _this.setState(function (_ref) {\n var deleted = _ref.deleted;\n return {\n deleted: deleted.filter(function (t) {\n return t.key !== key;\n })\n };\n });\n\n onRest && onRest(item, state, values);\n }\n };\n };\n\n _this.state = {\n first: true,\n transitions: [],\n current: {},\n deleted: [],\n prevProps: prevProps\n };\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(props, _ref2) {\n var first = _ref2.first,\n prevProps = _ref2.prevProps,\n state = _objectWithoutPropertiesLoose(_ref2, [\"first\", \"prevProps\"]);\n\n var _get = get(props),\n items = _get.items,\n keys = _get.keys,\n initial = _get.initial,\n from = _get.from,\n enter = _get.enter,\n leave = _get.leave,\n update = _get.update,\n _get$trail = _get.trail,\n trail = _get$trail === void 0 ? 0 : _get$trail,\n unique = _get.unique,\n config = _get.config;\n\n var _get2 = get(prevProps),\n _keys = _get2.keys,\n _items = _get2.items;\n\n var current = _extends({}, state.current);\n\n var deleted = [].concat(state.deleted); // Compare next keys with current keys\n\n var currentKeys = Object.keys(current);\n var currentSet = new Set(currentKeys);\n var nextSet = new Set(keys);\n var added = keys.filter(function (item) {\n return !currentSet.has(item);\n });\n var removed = state.transitions.filter(function (item) {\n return !item.destroyed && !nextSet.has(item.originalKey);\n }).map(function (i) {\n return i.originalKey;\n });\n var updated = keys.filter(function (item) {\n return currentSet.has(item);\n });\n var delay = 0;\n added.forEach(function (key) {\n // In unique mode, remove fading out transitions if their key comes in again\n if (unique && deleted.find(function (d) {\n return d.originalKey === key;\n })) deleted = deleted.filter(function (t) {\n return t.originalKey !== key;\n });\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var state = 'enter';\n current[key] = {\n state: state,\n originalKey: key,\n key: unique ? String(key) : guid++,\n item: item,\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n to: callProp(enter, item)\n };\n });\n removed.forEach(function (key) {\n var keyIndex = _keys.indexOf(key);\n\n var item = _items[keyIndex];\n var state = 'leave';\n deleted.push(_extends({}, current[key], {\n state: state,\n destroyed: true,\n left: _keys[Math.max(0, keyIndex - 1)],\n right: _keys[Math.min(_keys.length, keyIndex + 1)],\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n to: callProp(leave, item)\n }));\n delete current[key];\n });\n updated.forEach(function (key) {\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var state = 'update';\n current[key] = _extends({}, current[key], {\n item: item,\n state: state,\n trail: delay = delay + trail,\n config: callProp(config, item, state),\n to: callProp(update, item)\n });\n }); // This tries to restore order for deleted items by finding their last known siblings\n\n var out = keys.map(function (key) {\n return current[key];\n });\n deleted.forEach(function (_ref3) {\n var left = _ref3.left,\n right = _ref3.right,\n transition = _objectWithoutPropertiesLoose(_ref3, [\"left\", \"right\"]);\n\n var pos; // Was it the element on the left, if yes, move there ...\n\n if ((pos = out.findIndex(function (t) {\n return t.originalKey === left;\n })) !== -1) pos += 1; // Or how about the element on the right ...\n\n if (pos === -1) pos = out.findIndex(function (t) {\n return t.originalKey === right;\n }); // Maybe we'll find it in the list of deleted items\n\n if (pos === -1) pos = deleted.findIndex(function (t) {\n return t.originalKey === left;\n }); // Checking right side as well\n\n if (pos === -1) pos = deleted.findIndex(function (t) {\n return t.originalKey === right;\n }); // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n pos = Math.max(0, pos);\n out = [].concat(out.slice(0, pos), [transition], out.slice(pos));\n });\n return {\n first: first && added.length === 0,\n transitions: out,\n current: current,\n deleted: deleted,\n prevProps: props\n };\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n initial = _this$props2.initial,\n _this$props2$from = _this$props2.from,\n _this$props2$enter = _this$props2.enter,\n _this$props2$leave = _this$props2.leave,\n _this$props2$update = _this$props2.update,\n onDestroyed = _this$props2.onDestroyed,\n keys = _this$props2.keys,\n items = _this$props2.items,\n onFrame = _this$props2.onFrame,\n onRest = _this$props2.onRest,\n onStart = _this$props2.onStart,\n trail = _this$props2.trail,\n config = _this$props2.config,\n _children = _this$props2.children,\n unique = _this$props2.unique,\n reset = _this$props2.reset,\n extra = _objectWithoutPropertiesLoose(_this$props2, [\"initial\", \"from\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"trail\", \"config\", \"children\", \"unique\", \"reset\"]);\n\n return this.state.transitions.map(function (_ref4, i) {\n var _ref5;\n\n var state = _ref4.state,\n key = _ref4.key,\n item = _ref4.item,\n from = _ref4.from,\n to = _ref4.to,\n trail = _ref4.trail,\n config = _ref4.config,\n destroyed = _ref4.destroyed;\n return React__default.createElement(Keyframes, _extends({\n reset: reset && state === 'enter',\n primitive: Spring,\n state: state,\n filter: interpolateTo,\n states: (_ref5 = {}, _ref5[state] = to, _ref5),\n key: key,\n onRest: destroyed ? _this2.destroyItem(item, key, state) : onRest && function (values) {\n return onRest(item, state, values);\n },\n onStart: onStart && function () {\n return onStart(item, state);\n },\n onFrame: onFrame && function (values) {\n return onFrame(item, state, values);\n },\n delay: trail,\n config: config\n }, extra, {\n from: from,\n children: function children(props) {\n var child = _children(item, state, i);\n\n return child ? child(props) : null;\n }\n }));\n });\n };\n\n return Transition;\n}(React__default.PureComponent);\n\nTransition.defaultProps = {\n keys: function keys(item) {\n return item;\n },\n unique: false,\n reset: false\n};\n\nvar domElements = ['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', 'marquee', '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', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\nvar extendedAnimated = domElements.reduce(function (acc, element) {\n acc[element] = createAnimatedComponent(element);\n return acc;\n}, createAnimatedComponent);\n\nexports.Spring = Spring;\nexports.Keyframes = Keyframes;\nexports.Transition = Transition;\nexports.Trail = Trail;\nexports.Controller = Controller;\nexports.config = config;\nexports.animated = extendedAnimated;\nexports.interpolate = interpolate$1;\nexports.Globals = Globals;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport Portal from 'react-minimalist-portal';\nimport CSSTransition from 'react-transition-group/CSSTransition';\nimport cx from 'classnames';\nimport noScroll from 'no-scroll';\nimport FocusTrap from 'focus-trap-react';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar CloseIcon = function CloseIcon(_ref) {\n var classes = _ref.classes,\n classNames = _ref.classNames,\n styles = _ref.styles,\n closeIconSize = _ref.closeIconSize,\n closeIconSvgPath = _ref.closeIconSvgPath,\n onClickCloseIcon = _ref.onClickCloseIcon,\n id = _ref.id;\n return React.createElement(\"button\", {\n className: cx(classes.closeButton, classNames.closeButton),\n style: styles.closeButton,\n onClick: onClickCloseIcon,\n id: id\n }, React.createElement(\"svg\", {\n className: cx(classes.closeIcon, classNames.closeIcon),\n style: styles.closeIcon,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: closeIconSize,\n height: closeIconSize,\n viewBox: \"0 0 36 36\"\n }, closeIconSvgPath));\n};\n\nCloseIcon.propTypes = {\n classNames: PropTypes.object.isRequired,\n styles: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n closeIconSize: PropTypes.number.isRequired,\n closeIconSvgPath: PropTypes.node.isRequired,\n onClickCloseIcon: PropTypes.func.isRequired,\n id: PropTypes.string\n};\nCloseIcon.defaultProps = {\n id: null\n};\n\nvar _modals = [];\n/**\n * Handle the order of the modals.\n * Inspired by the material-ui implementation.\n */\n\nvar modalManager = {\n /**\n * Return the modals array\n */\n modals: function modals() {\n return _modals;\n },\n\n /**\n * Register a new modal\n */\n add: function add(modal) {\n if (_modals.indexOf(modal) === -1) {\n _modals.push(modal);\n }\n },\n\n /**\n * Remove a modal\n */\n remove: function remove(modal) {\n var index = _modals.indexOf(modal);\n\n if (index !== -1) {\n _modals.splice(index, 1);\n }\n },\n\n /**\n * Check if the modal is the first one on the screen\n */\n isTopModal: function isTopModal(modal) {\n return !!_modals.length && _modals[_modals.length - 1] === modal;\n }\n};\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \".styles_overlay__CLSq- {\\n background: rgba(0, 0, 0, 0.75);\\n display: flex;\\n align-items: flex-start;\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n overflow-y: auto;\\n overflow-x: hidden;\\n z-index: 1000;\\n padding: 1.2rem;\\n}\\n.styles_overlayCenter__YHoO7 {\\n align-items: center;\\n}\\n.styles_modal__gNwvD {\\n max-width: 800px;\\n position: relative;\\n padding: 1.2rem;\\n background: #ffffff;\\n background-clip: padding-box;\\n box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.25);\\n margin: auto;\\n}\\n.styles_closeButton__20ID4 {\\n position: absolute;\\n top: 14px;\\n right: 14px;\\n border: none;\\n padding: 0;\\n background-color: transparent;\\n display: flex;\\n}\\n.styles_closeIcon__1QwbI {\\n}\\n.styles_transitionEnter__3j_-a {\\n opacity: 0.01;\\n}\\n.styles_transitionEnterActive___eQs7 {\\n opacity: 1;\\n transition: opacity 500ms cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.styles_transitionExit__1KmEf {\\n opacity: 1;\\n}\\n.styles_transitionExitActive__1nQXw {\\n opacity: 0.01;\\n transition: opacity 500ms cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n\";\nvar cssClasses = {\"overlay\":\"styles_overlay__CLSq-\",\"overlayCenter\":\"styles_overlayCenter__YHoO7\",\"modal\":\"styles_modal__gNwvD\",\"closeButton\":\"styles_closeButton__20ID4\",\"closeIcon\":\"styles_closeIcon__1QwbI\",\"transitionEnter\":\"styles_transitionEnter__3j_-a\",\"transitionEnterActive\":\"styles_transitionEnterActive___eQs7\",\"transitionExit\":\"styles_transitionExit__1KmEf\",\"transitionExitActive\":\"styles_transitionExitActive__1nQXw\"};\nstyleInject(css,{\"insertAt\":\"top\"});\n\nvar Modal =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Modal)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"shouldClose\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n showPortal: _this.props.open\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleOpen\", function () {\n modalManager.add(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (_this.props.blockScroll) {\n Modal.blockScroll();\n }\n\n document.addEventListener('keydown', _this.handleKeydown);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleClose\", function () {\n modalManager.remove(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (_this.props.blockScroll) {\n _this.unblockScroll();\n }\n\n document.removeEventListener('keydown', _this.handleKeydown);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleClickOverlay\", function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (!_this.shouldClose) {\n _this.shouldClose = null;\n return;\n }\n\n if (_this.props.onOverlayClick) {\n _this.props.onOverlayClick(event);\n }\n\n if (_this.props.closeOnOverlayClick) {\n _this.props.onClose(event);\n }\n\n _this.shouldClose = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleClickCloseIcon\", function (event) {\n _this.props.onClose(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeydown\", function (event) {\n // Only the last modal need to be escaped when pressing the esc key\n if (event.keyCode !== 27 || !modalManager.isTopModal(_assertThisInitialized(_assertThisInitialized(_this)))) {\n return;\n }\n\n if (_this.props.onEscKeyDown) {\n _this.props.onEscKeyDown(event);\n }\n\n if (_this.props.closeOnEsc) {\n _this.props.onClose(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleModalEvent\", function () {\n _this.shouldClose = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEntered\", function () {\n if (_this.props.onEntered) {\n _this.props.onEntered();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleExited\", function () {\n if (_this.props.onExited) {\n _this.props.onExited();\n }\n\n _this.setState({\n showPortal: false\n });\n\n if (_this.props.blockScroll) {\n _this.unblockScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"unblockScroll\", function () {\n // Restore the scroll only if there is no modal on the screen\n if (modalManager.modals().length === 0) {\n noScroll.off();\n }\n });\n\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Block scroll when initial prop is open\n if (this.props.open) {\n this.handleOpen();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (prevState.showPortal && !this.state.showPortal) {\n this.handleClose();\n } else if (!prevProps.open && this.props.open) {\n this.handleOpen();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.open) {\n this.handleClose();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n open = _this$props.open,\n center = _this$props.center,\n classes = _this$props.classes,\n classNames = _this$props.classNames,\n styles = _this$props.styles,\n showCloseIcon = _this$props.showCloseIcon,\n closeIconSize = _this$props.closeIconSize,\n closeIconSvgPath = _this$props.closeIconSvgPath,\n animationDuration = _this$props.animationDuration,\n container = _this$props.container,\n focusTrapped = _this$props.focusTrapped,\n focusTrapOptions = _this$props.focusTrapOptions,\n overlayId = _this$props.overlayId,\n modalId = _this$props.modalId,\n closeIconId = _this$props.closeIconId;\n var showPortal = this.state.showPortal;\n\n if (!showPortal) {\n return null;\n }\n\n return React.createElement(Portal, {\n container: container\n }, React.createElement(CSSTransition, {\n in: open,\n appear: true,\n classNames: {\n appear: classNames.transitionEnter || classes.transitionEnter,\n appearActive: classNames.transitionEnterActive || classes.transitionEnterActive,\n enter: classNames.transitionEnter || classes.transitionEnter,\n enterActive: classNames.transitionEnterActive || classes.transitionEnterActive,\n exit: classNames.transitionExit || classes.transitionExit,\n exitActive: classNames.transitionExitActive || classes.transitionExitActive\n },\n timeout: animationDuration,\n onEntered: this.handleEntered,\n onExited: this.handleExited\n }, React.createElement(\"div\", {\n className: cx(classes.overlay, center ? classes.overlayCenter : null, classNames.overlay),\n onClick: this.handleClickOverlay,\n style: styles.overlay,\n id: overlayId\n }, focusTrapped ? React.createElement(\"div\", {\n className: cx(classes.modal, classNames.modal),\n style: styles.modal,\n onMouseDown: this.handleModalEvent,\n onMouseUp: this.handleModalEvent,\n onClick: this.handleModalEvent,\n id: modalId\n }, React.createElement(FocusTrap, {\n focusTrapOptions: _objectSpread({}, {\n clickOutsideDeactivates: true\n }, focusTrapOptions)\n }, this.props.children, showCloseIcon && React.createElement(CloseIcon, {\n classes: classes,\n classNames: classNames,\n styles: styles,\n closeIconSize: closeIconSize,\n closeIconSvgPath: closeIconSvgPath,\n onClickCloseIcon: this.handleClickCloseIcon,\n id: closeIconId\n }))) : React.createElement(\"div\", {\n className: cx(classes.modal, classNames.modal),\n style: styles.modal,\n onMouseDown: this.handleModalEvent,\n onMouseUp: this.handleModalEvent,\n onClick: this.handleModalEvent,\n id: modalId\n }, this.props.children, showCloseIcon && React.createElement(CloseIcon, {\n classes: classes,\n classNames: classNames,\n styles: styles,\n closeIconSize: closeIconSize,\n closeIconSvgPath: closeIconSvgPath,\n onClickCloseIcon: this.handleClickCloseIcon,\n id: closeIconId\n })))));\n }\n }], [{\n key: \"blockScroll\",\n value: function blockScroll() {\n noScroll.on();\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (!prevState.showPortal && nextProps.open) {\n return {\n showPortal: true\n };\n }\n\n return null;\n }\n }]);\n\n return Modal;\n}(Component);\n\nModal.propTypes = {\n /**\n * Is the modal closable when user press esc key.\n */\n closeOnEsc: PropTypes.bool,\n\n /**\n * Is the modal closable when user click on overlay.\n */\n closeOnOverlayClick: PropTypes.bool,\n\n /**\n * Callback fired when the Modal is open and the animation is finished.\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired when the Modal has exited and the animation is finished.\n */\n onExited: PropTypes.func,\n\n /**\n * Callback fired when the Modal is requested to be closed by a click on the overlay or when user press esc key.\n */\n onClose: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the escape key is pressed.\n */\n onEscKeyDown: PropTypes.func,\n\n /**\n * Callback fired when the overlay is clicked.\n */\n onOverlayClick: PropTypes.func,\n\n /**\n * Control if the modal is open or not.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * An object containing classNames to style the modal, can have properties 'overlay' (classname for overlay div), 'modal' (classname for modal content div), 'closeButton' (classname for the button that contain the close icon), 'closeIcon' (classname for close icon svg). You can customize the transition with 'transitionEnter', 'transitionEnterActive', 'transitionExit', 'transitionExitActive'\n */\n classNames: PropTypes.object,\n\n /**\n * An object containing the styles objects to style the modal, can have properties 'overlay', 'modal', 'closeButton', 'closeIcon'.\n */\n styles: PropTypes.object,\n\n /**\n * The content of the modal.\n */\n children: PropTypes.node,\n\n /**\n * @internal\n */\n classes: PropTypes.object,\n\n /**\n * Should the dialog be centered.\n */\n center: PropTypes.bool,\n\n /**\n * Show the close icon.\n */\n showCloseIcon: PropTypes.bool,\n\n /**\n * Close icon size.\n */\n closeIconSize: PropTypes.number,\n\n /**\n * A valid svg path to show as icon.\n */\n closeIconSvgPath: PropTypes.node,\n\n /**\n * Animation duration in milliseconds.\n */\n animationDuration: PropTypes.number,\n\n /**\n * You can specify a container prop which should be of type `Element`. The portal will be rendered inside that element. The default behavior will create a div node and render it at the at the end of document.body.\n */\n container: PropTypes.object,\n // eslint-disable-line\n\n /**\n * Whether to block scrolling when dialog is open\n */\n blockScroll: PropTypes.bool,\n\n /**\n * When the modal is open, trap focus within it\n */\n focusTrapped: PropTypes.bool,\n\n /**\n * Options to be passed to the focus trap, details available at https://github.com/davidtheclark/focus-trap#focustrap--createfocustrapelement-createoptions\n */\n focusTrapOptions: PropTypes.object,\n\n /**\n * id attribute for overlay\n */\n overlayId: PropTypes.string,\n\n /**\n * id attribute for modal\n */\n modalId: PropTypes.string,\n\n /**\n * id attribute for close icon\n */\n closeIconId: PropTypes.string\n};\nModal.defaultProps = {\n classes: cssClasses,\n closeOnEsc: true,\n closeOnOverlayClick: true,\n onEntered: null,\n onExited: null,\n onEscKeyDown: null,\n onOverlayClick: null,\n showCloseIcon: true,\n closeIconSize: 28,\n closeIconSvgPath: React.createElement(\"path\", {\n d: \"M28.5 9.62L26.38 7.5 18 15.88 9.62 7.5 7.5 9.62 15.88 18 7.5 26.38l2.12 2.12L18 20.12l8.38 8.38 2.12-2.12L20.12 18z\"\n }),\n classNames: {},\n styles: {},\n children: null,\n center: false,\n animationDuration: 500,\n blockScroll: true,\n focusTrapped: false,\n focusTrapOptions: {},\n overlayId: null,\n modalId: null,\n closeIconId: null\n};\npolyfill(Modal);\n\nexport default Modal;\n//# sourceMappingURL=index.es.js.map\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar useCreatePortal = typeof _reactDom2.default.createPortal === 'function';\nvar isBrowser = typeof window !== 'undefined';\n\nvar Portal = function (_Component) {\n _inherits(Portal, _Component);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));\n }\n\n _createClass(Portal, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n if (isBrowser) {\n if (!this.props.container) {\n this.container = document.createElement('div');\n document.body.appendChild(this.container);\n } else {\n this.container = this.props.container;\n }\n this.renderLayer();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.renderLayer();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (!useCreatePortal) {\n _reactDom2.default.unmountComponentAtNode(this.container);\n }\n if (!this.props.container) {\n document.body.removeChild(this.container);\n }\n }\n }, {\n key: 'renderLayer',\n value: function renderLayer() {\n if (!useCreatePortal) {\n _reactDom2.default.unstable_renderSubtreeIntoContainer(this, this.props.children, this.container);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n if (useCreatePortal) {\n return _reactDom2.default.createPortal(this.props.children, this.container);\n }\n return null;\n }\n }]);\n\n return Portal;\n}(_react.Component);\n\nPortal.propTypes = {\n children: _propTypes2.default.node, // eslint-disable-line\n container: _propTypes2.default.object // eslint-disable-line\n};\n\nexports.default = Portal;","(function(root) {\n var isOn = false;\n var scrollbarSize;\n var scrollTop;\n\n function getScrollbarSize() {\n if (typeof scrollbarSize !== 'undefined') return scrollbarSize;\n\n var doc = document.documentElement;\n var dummyScroller = document.createElement('div');\n dummyScroller.setAttribute('style', 'width:99px;height:99px;' + 'position:absolute;top:-9999px;overflow:scroll;');\n doc.appendChild(dummyScroller);\n scrollbarSize = dummyScroller.offsetWidth - dummyScroller.clientWidth;\n doc.removeChild(dummyScroller);\n return scrollbarSize;\n }\n\n function hasScrollbar() {\n return document.documentElement.scrollHeight > window.innerHeight;\n }\n\n function on(options) {\n if (typeof document === 'undefined' || isOn) return;\n var doc = document.documentElement;\n scrollTop = window.pageYOffset;\n if (hasScrollbar()) {\n doc.style.width = 'calc(100% - '+ getScrollbarSize() +'px)';\n } else {\n doc.style.width = '100%';\n }\n doc.style.position = 'fixed';\n doc.style.top = -scrollTop + 'px';\n doc.style.overflow = 'hidden';\n isOn = true;\n }\n\n function off() {\n if (typeof document === 'undefined' || !isOn) return;\n var doc = document.documentElement;\n doc.style.width = '';\n doc.style.position = '';\n doc.style.top = '';\n doc.style.overflow = '';\n window.scroll(0, scrollTop);\n isOn = false;\n }\n\n function toggle() {\n if (isOn) {\n off();\n return;\n }\n on();\n }\n\n var noScroll = {\n on: on,\n off: off,\n toggle: toggle,\n };\n\n if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = noScroll;\n } else {\n root.noScroll = noScroll;\n }\n})(this);\n","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar createFocusTrap = require('focus-trap');\n\nvar checkedProps = ['active', 'paused', 'tag', 'focusTrapOptions', '_createFocusTrap'];\n\nvar FocusTrap = function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n\n function FocusTrap(props) {\n _classCallCheck(this, FocusTrap);\n\n var _this = _possibleConstructorReturn(this, (FocusTrap.__proto__ || Object.getPrototypeOf(FocusTrap)).call(this, props));\n\n _this.setNode = function (el) {\n _this.node = el;\n };\n\n if (typeof document !== 'undefined') {\n _this.previouslyFocusedElement = document.activeElement;\n }\n return _this;\n }\n\n _createClass(FocusTrap, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n var specifiedFocusTrapOptions = this.props.focusTrapOptions;\n var tailoredFocusTrapOptions = {\n returnFocusOnDeactivate: false\n };\n for (var optionName in specifiedFocusTrapOptions) {\n if (!specifiedFocusTrapOptions.hasOwnProperty(optionName)) continue;\n if (optionName === 'returnFocusOnDeactivate') continue;\n tailoredFocusTrapOptions[optionName] = specifiedFocusTrapOptions[optionName];\n }\n\n this.focusTrap = this.props._createFocusTrap(this.node, tailoredFocusTrapOptions);\n if (this.props.active) {\n this.focusTrap.activate();\n }\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.active && !this.props.active) {\n var returnFocusOnDeactivate = this.props.focusTrapOptions.returnFocusOnDeactivate;\n\n var returnFocus = returnFocusOnDeactivate || false;\n var config = { returnFocus: returnFocus };\n this.focusTrap.deactivate(config);\n } else if (!prevProps.active && this.props.active) {\n this.focusTrap.activate();\n }\n\n if (prevProps.paused && !this.props.paused) {\n this.focusTrap.unpause();\n } else if (!prevProps.paused && this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.focusTrap.deactivate();\n if (this.props.focusTrapOptions.returnFocusOnDeactivate !== false && this.previouslyFocusedElement && this.previouslyFocusedElement.focus) {\n this.previouslyFocusedElement.focus();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var elementProps = {\n ref: this.setNode\n };\n\n // This will get id, className, style, etc. -- arbitrary element props\n for (var prop in this.props) {\n if (!this.props.hasOwnProperty(prop)) continue;\n if (checkedProps.indexOf(prop) !== -1) continue;\n elementProps[prop] = this.props[prop];\n }\n\n return React.createElement(this.props.tag, elementProps, this.props.children);\n }\n }]);\n\n return FocusTrap;\n}(React.Component);\n\nFocusTrap.defaultProps = {\n active: true,\n tag: 'div',\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\n\nmodule.exports = FocusTrap;","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar listeningFocusTrap = null;\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(state.nodeFocusedBeforeActivation);\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n if (listeningFocusTrap) {\n listeningFocusTrap.pause();\n }\n listeningFocusTrap = trap;\n\n updateTabbableNodes();\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n delay(function() {\n tryFocus(getInitialFocusNode());\n });\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, true);\n doc.addEventListener('touchstart', checkPointerDown, true);\n doc.addEventListener('click', checkClick, true);\n doc.addEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active || listeningFocusTrap !== trap) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n listeningFocusTrap = null;\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n \"You can't have a focus-trap without at least one focusable element\"\n );\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n } else {\n e.preventDefault();\n }\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var elementDocument = el.ownerDocument || el;\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var untouchabilityChecker = new UntouchabilityChecker(elementDocument);\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate, untouchabilityChecker)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node, untouchabilityChecker) {\n if (\n !isNodeMatchingSelectorFocusable(node, untouchabilityChecker)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node, untouchabilityChecker);\n}\n\nfunction isNodeMatchingSelectorFocusable(node, untouchabilityChecker) {\n untouchabilityChecker = untouchabilityChecker || new UntouchabilityChecker(node.ownerDocument || node);\n if (\n node.disabled\n || isHiddenInput(node)\n || untouchabilityChecker.isUntouchable(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node, untouchabilityChecker) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node, untouchabilityChecker);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\n// Array.prototype.find not available in IE.\nfunction find(list, predicate) {\n for (var i = 0, length = list.length; i < length; i++) {\n if (predicate(list[i])) return list[i];\n }\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\n// An element is \"untouchable\" if *it or one of its ancestors* has\n// `visibility: hidden` or `display: none`.\nfunction UntouchabilityChecker(elementDocument) {\n this.doc = elementDocument;\n // Node cache must be refreshed on every check, in case\n // the content of the element has changed. The cache contains tuples\n // mapping nodes to their boolean result.\n this.cache = [];\n}\n\n// getComputedStyle accurately reflects `visibility: hidden` of ancestors\n// but not `display: none`, so we need to recursively check parents.\nUntouchabilityChecker.prototype.hasDisplayNone = function hasDisplayNone(node, nodeComputedStyle) {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n\n // Search for a cached result.\n var cached = find(this.cache, function(item) {\n return item === node;\n });\n if (cached) return cached[1];\n\n nodeComputedStyle = nodeComputedStyle || this.doc.defaultView.getComputedStyle(node);\n\n var result = false;\n\n if (nodeComputedStyle.display === 'none') {\n result = true;\n } else if (node.parentNode) {\n result = this.hasDisplayNone(node.parentNode);\n }\n\n this.cache.push([node, result]);\n\n return result;\n}\n\nUntouchabilityChecker.prototype.isUntouchable = function isUntouchable(node) {\n if (node === this.doc.documentElement) return false;\n var computedStyle = this.doc.defaultView.getComputedStyle(node);\n if (this.hasDisplayNone(node, computedStyle)) return true;\n return computedStyle.visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n","'use strict'\nmodule.exports = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n this\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport Modal from 'react-responsive-modal'\nimport { rem } from 'polished'\n\nimport { breakpoints, mediaQuery } from '../../styles/media'\nimport MediaQuery from '../MediaQuery/MediaQuery'\nimport RemoveIcon from '../../icons/RemoveIcon'\n\ntype Props = {\n children?: React.Node,\n open?: boolean,\n closeText?: string,\n onClose?: () => void,\n}\n\nconst ModalContent = styled.div`\n padding-top: ${rem(8)};\n padding-bottom: ${rem(16)};\n\n ${mediaQuery.md`\n padding-top: ${rem(48)};\n padding-bottom: ${rem(48)}; \n `}\n`\n\nconst ModalCloseWrapper = styled.div`\n text-align: right;\n\n ${mediaQuery.md`\n margin-right: -${rem(48)}; \n `}\n`\nconst ModalCloseButton = styled.button`\n cursor: pointer;\n border: none;\n &:focus,\n &:focus-visible {\n outline: none;\n border: 1px dashed currentColor;\n }\n`\n\nconst ModalCloseText = styled.span`\n margin-right: ${rem(8)};\n position: relative;\n top: ${rem(2)};\n`\n\nconst ModalComponent = ({ onClose, children, open, closeText }: Props) => {\n const handleCloseModal = () => {\n onClose && onClose()\n }\n\n return (\n \n \n \n \n \n {closeText || ''}\n \n \n \n {children && children}\n \n \n \n \n \n \n {closeText || ''}\n \n \n \n {children && children}\n \n \n \n )\n}\n\nModalComponent.displayName = 'Modal'\nModalComponent.defaultProps = {}\nexport default ModalComponent\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","'use client';\n'use strict';\n\nvar ReactExports = require('react');\nvar vanilla = require('jotai/vanilla');\n\nvar StoreContext = ReactExports.createContext(undefined);\nvar useStore = function useStore(options) {\n var store = ReactExports.useContext(StoreContext);\n return (options == null ? void 0 : options.store) || store || vanilla.getDefaultStore();\n};\nvar Provider = function Provider(_ref) {\n var children = _ref.children,\n store = _ref.store;\n var storeRef = ReactExports.useRef();\n if (!store && !storeRef.current) {\n storeRef.current = vanilla.createStore();\n }\n return ReactExports.createElement(StoreContext.Provider, {\n value: store || storeRef.current\n }, children);\n};\n\nvar isPromiseLike = function isPromiseLike(x) {\n return typeof (x == null ? void 0 : x.then) === 'function';\n};\nvar use = ReactExports.use || function (promise) {\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then(function (v) {\n promise.status = 'fulfilled';\n promise.value = v;\n }, function (e) {\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n};\nfunction useAtomValue(atom, options) {\n var store = useStore(options);\n var _useReducer = ReactExports.useReducer(function (prev) {\n var nextValue = store.get(atom);\n if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {\n return prev;\n }\n return [nextValue, store, atom];\n }, undefined, function () {\n return [store.get(atom), store, atom];\n }),\n _useReducer$ = _useReducer[0],\n valueFromReducer = _useReducer$[0],\n storeFromReducer = _useReducer$[1],\n atomFromReducer = _useReducer$[2],\n rerender = _useReducer[1];\n var value = valueFromReducer;\n if (storeFromReducer !== store || atomFromReducer !== atom) {\n rerender();\n value = store.get(atom);\n }\n var delay = options == null ? void 0 : options.delay;\n ReactExports.useEffect(function () {\n var unsub = store.sub(atom, function () {\n if (typeof delay === 'number') {\n setTimeout(rerender, delay);\n return;\n }\n rerender();\n });\n rerender();\n return unsub;\n }, [store, atom, delay]);\n ReactExports.useDebugValue(value);\n return isPromiseLike(value) ? use(value) : value;\n}\n\nfunction useSetAtom(atom, options) {\n var store = useStore(options);\n var setAtom = ReactExports.useCallback(function () {\n if (process.env.NODE_ENV !== 'production' && !('write' in atom)) {\n throw new Error('not writable atom');\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return store.set.apply(store, [atom].concat(args));\n }, [store, atom]);\n return setAtom;\n}\n\nfunction useAtom(atom, options) {\n return [useAtomValue(atom, options), useSetAtom(atom, options)];\n}\n\nexports.Provider = Provider;\nexports.useAtom = useAtom;\nexports.useAtomValue = useAtomValue;\nexports.useSetAtom = useSetAtom;\nexports.useStore = useStore;\n","// @flow\nimport * as React from 'react'\nimport styled, { css } from 'styled-components'\nimport config, { createQuery } from './grid-config'\nimport { DIMENSION_NAMES, mediaQuery } from '../../styles/media'\nimport type { Columns } from './grid-config'\nimport type { DimensionNameTypes } from '../../types/enums/DimensionNameTypes'\n\ntype Align = 'left' | 'center' | 'right'\ntype VerticalAlign = 'top' | 'middle' | 'bottom' | 'stretch'\n\ntype Props = {\n xs?: Columns | boolean,\n sm?: Columns | boolean,\n md?: Columns | boolean,\n lg?: Columns | boolean,\n hd?: Columns | boolean,\n xsOffset?: Columns,\n smOffset?: Columns,\n mdOffset?: Columns,\n lgOffset?: Columns,\n hdOffset?: Columns,\n align?: Align,\n verticalAlign?: VerticalAlign,\n stretch?: boolean,\n shrink?: boolean,\n children?: React.Node,\n}\n\n/**\n * Takes a fraction number, and reduce it to a fixed precision, only if needed.\n * Removes all trailing 0's\n **/\nconst shortPrecision = (value: number, precision: number = 6) => {\n const precise = value.toFixed(precision)\n const match = precise.match(/(^\\d+)\\.(\\d!0)?(0+)$/)\n if (match) {\n return `${match[1]}${match[2] ? `.${match[2]}` : ''}`\n }\n return precise\n}\n\nconst renderBreakPoint = (\n columns?: number | boolean,\n dimension?: DimensionNameTypes,\n) => {\n let result\n if (typeof columns === 'number') {\n result = css`\n flex-basis: ${shortPrecision((100 / config.gridSize) * columns)}%;\n max-width: ${shortPrecision((100 / config.gridSize) * columns)}%;\n `\n } else if (columns === true) {\n result = css`\n flex-grow: 1;\n flex-basis: 0;\n max-width: 100%;\n `\n }\n if (columns === false) {\n result = 'display: none;'\n }\n\n if (result) return dimension ? mediaQuery[dimension]`${result}` : result\n\n return null\n}\n\nconst align = (align?: Align) => {\n if (!align) return null\n if (align === 'right')\n return css`\n display: flex;\n justify-content: flex-end;\n `\n if (align === 'center')\n return css`\n display: flex;\n justify-content: center;\n `\n if (align === 'left')\n return css`\n display: flex;\n justify-content: flex-start;\n `\n}\nconst verticalAlign = (align?: VerticalAlign) => {\n if (!align) return null\n if (align === 'stretch')\n return css`\n display: flex;\n align-items: stretch;\n `\n if (align === 'top')\n return css`\n display: flex;\n align-items: flex-start;\n `\n if (align === 'middle')\n return css`\n display: flex;\n align-items: center;\n `\n if (align === 'bottom')\n return css`\n display: flex;\n align-items: flex-end;\n `\n}\n\nconst offset = (key: DimensionNameTypes | boolean, columns?: Columns) => {\n if (columns) {\n return createQuery(\n key,\n css`\n margin-left: ${(100 / config.gridSize) * columns}%;\n `,\n )\n }\n return null\n}\n\nconst Col: React.ComponentType = styled.div`\n box-sizing: border-box;\n flex: ${(p: Props) => (p.stretch ? '1' : '0')} ${(p: Props) =>\n p.shrink ? '1' : '0'} auto;\n \n ${(p: Props) => align(p.align)}\n ${(p: Props) => verticalAlign(p.verticalAlign)}\n ${(p: Props) => DIMENSION_NAMES.map(key => renderBreakPoint(p[key], key))}\n ${(p: Props) => offset('xs', p.xsOffset)}\n ${(p: Props) => offset('sm', p.smOffset)}\n ${(p: Props) => offset('md', p.mdOffset)}\n ${(p: Props) => offset('lg', p.lgOffset)}\n ${(p: Props) => offset('hd', p.hdOffset)}\n`\n\nCol.displayName = 'Col'\n\nexport default Col\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","// @flow\nimport * as React from 'react'\nimport styled from 'styled-components'\nimport Button from '../../Button/Button'\nimport Markdown from '../../Markdown/Markdown'\nimport { mediaOnly } from '../../../styles/media'\nimport { color } from '../../../styles/theme'\nimport { rem } from 'polished'\n\nimport type { OverlayViewModel } from '../../../types/OverlayViewModel'\n\nconst StyledOverlayHeader = styled.h2`\n color: ${({ theme }) => theme.primary};\n ${mediaOnly.xs`\n margin-top: 4rem;\n `}\n`\n\nconst StyledMarkdown = styled(Markdown)`\n margin: ${rem(24)} 0;\n`\n\nconst StyledButtonWrapper = styled.div`\n display: flex;\n margin-top: 3rem;\n ${mediaOnly.xs`\n flex-direction: column;\n justify-content: space-between;\n `}\n`\n\nconst StyledCancelButton = styled(Button)`\n margin-right: 16px;\n ${mediaOnly.xs`\n margin-bottom: 32px;\n margin-right: 0px;\n `}\n`\n\ntype FormOverlayProps = OverlayViewModel & {\n handlePrimaryAction?: () => void,\n handleSecondaryAction?: () => void,\n children?: React.Node,\n handleClose?: () => void,\n}\n\nconst FormOverlay = ({\n handleClose,\n title,\n src,\n primaryLabel,\n secondaryLabel,\n handlePrimaryAction,\n handleSecondaryAction,\n children,\n}: FormOverlayProps) => {\n return (\n <>\n {title}\n \n \n {secondaryLabel && (\n \n {secondaryLabel}\n \n )}\n {primaryLabel && handlePrimaryAction && (\n \n )}\n {children}\n \n \n )\n}\n\nexport default FormOverlay\n","// @flow\nimport * as React from 'react'\nimport styled, { css } from 'styled-components'\nimport { createQuery } from './grid-config'\nimport Col from './Col'\nimport type { DimensionNameTypes } from '../../types/enums/DimensionNameTypes'\nimport { rem } from 'polished'\n\ntype Props = {\n children: React.ChildrenArray>,\n /** Gutter in 10px increments */\n xsGutter?: number,\n smGutter?: number,\n mdGutter?: number,\n lgGutter?: number,\n hdGutter?: number,\n noWrap?: boolean,\n reverse?: boolean | DimensionNameTypes | Array,\n start?: boolean | DimensionNameTypes | Array,\n center?: boolean | DimensionNameTypes | Array,\n end?: boolean | DimensionNameTypes | Array,\n top?: boolean | DimensionNameTypes | Array,\n middle?: boolean | DimensionNameTypes | Array,\n bottom?: boolean | DimensionNameTypes | Array,\n around?: boolean | DimensionNameTypes | Array,\n between?: boolean | DimensionNameTypes | Array,\n first?: boolean | DimensionNameTypes | Array,\n last?: boolean | DimensionNameTypes | Array,\n}\n\nfunction addGutter(key: DimensionNameTypes | boolean, gutter?: number) {\n if (gutter) {\n const gutterVal = rem((gutter * 10) / 2)\n const gutterValOuter = rem((gutter * 10) / 2 - 1)\n\n return createQuery(\n key,\n css`\n margin-right: -${gutterValOuter};\n margin-left: -${gutterValOuter};\n\n > ${Col} {\n padding-right: ${gutterVal};\n padding-left: ${gutterVal};\n }\n `,\n )\n }\n return null\n}\n\nconst Row: React.ComponentType = styled.div`\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n flex-direction: row;\n flex-wrap: ${(p: Props) => (p.noWrap ? 'nowrap' : 'wrap')};\n \n ${(p: Props) => addGutter('xs', p.xsGutter)}\n ${(p: Props) => addGutter('sm', p.smGutter)}\n ${(p: Props) => addGutter('md', p.mdGutter)}\n ${(p: Props) => addGutter('lg', p.lgGutter)}\n ${(p: Props) => addGutter('hd', p.hdGutter)}\n ${(p: Props) =>\n createQuery(\n p.reverse,\n css`\n flex-direction: row-reverse;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.start,\n css`\n justify-content: flex-start;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.center,\n css`\n justify-content: center;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.end,\n css`\n justify-content: flex-end;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.top,\n css`\n align-items: flex-start;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.middle,\n css`\n align-items: center;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.bottom,\n css`\n align-items: flex-end;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.around,\n css`\n justify-content: space-around;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.between,\n css`\n justify-content: space-between;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.first,\n css`\n order: -1;\n `,\n )}\n\n ${(p: Props) =>\n createQuery(\n p.last,\n css`\n order: 1;\n `,\n )}\n`\n\nRow.displayName = 'Row'\n\nexport default Row\n","//@flow\n\nexport default function handleOpenSearch(link?: string) {\n try {\n window.raffleApi.open(link)\n } catch (e) {\n console.error(e)\n alert('Søgning er ikke tilgængelig på nuværende tidspunkt')\n }\n}\n","// @flow\nimport * as React from 'react'\n\nconst SearchIcon = ({ style, ...rest }: Object) => {\n return (\n \n \n \n )\n}\n\nexport default SearchIcon\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n"],"sourceRoot":""}