{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"React\"","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./src/models/index.ts","webpack:///./src/components/index.ts","webpack:///external \"ReactDOM\"","webpack:///./node_modules/axios/index.js","webpack:///./src/utils/index.ts","webpack:///./node_modules/react-autosuggest/dist/compareObjects.js","webpack:///./node_modules/awesome-imperative-promise/src/index.ts","webpack:///./node_modules/awesome-debounce-promise/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/awesome-debounce-promise/src/index.ts","webpack:///./node_modules/awesome-only-resolves-last-promise/src/index.ts","webpack:///./src/services/index.ts","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./src/utils/icons.tsx","webpack:///./node_modules/debounce-promise/index.js","webpack:///./src/index.tsx","webpack:///./src/components/FrontPage.tsx","webpack:///./src/models/User.ts","webpack:///./src/models/GalleryPhoto.ts","webpack:///./src/models/Location.ts","webpack:///./src/models/cardTitle.ts","webpack:///./src/models/QuestionGame.ts","webpack:///./src/models/Configuration.ts","webpack:///./src/services/users.ts","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./src/services/location.ts","webpack:///./src/services/questionGame.ts","webpack:///./src/services/messages.ts","webpack:///./src/components/Hero.tsx","webpack:///./src/components/RegisterBanner.tsx","webpack:///./src/components/SearchForm.tsx","webpack:///./node_modules/react-slider/es/components/ReactSlider/ReactSlider.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/components/UsersCard.tsx","webpack:///./src/components/Footer.tsx","webpack:///./src/components/EmptyPhoto.tsx","webpack:///./src/components/Photo.tsx","webpack:///./src/utils/debounce.ts","webpack:///./src/components/GalleryCard.tsx","webpack:///./src/components/LocationInput.tsx","webpack:///./node_modules/react-autosuggest/dist/index.js","webpack:///./node_modules/react-autosuggest/dist/Autosuggest.js","webpack:///./node_modules/shallow-equal/arrays/index.js","webpack:///./node_modules/react-autosuggest/dist/Autowhatever.js","webpack:///./node_modules/section-iterator/dist/index.js","webpack:///./node_modules/react-themeable/dist/index.js","webpack:///./node_modules/react-themeable/node_modules/object-assign/index.js","webpack:///./node_modules/react-autosuggest/dist/SectionTitle.js","webpack:///./node_modules/react-autosuggest/dist/ItemList.js","webpack:///./node_modules/react-autosuggest/dist/Item.js","webpack:///./node_modules/react-autosuggest/dist/theme.js","webpack:///./src/components/QuestionGameCard.tsx","webpack:///./src/components/Messages.tsx","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/dom-helpers/esm/removeClass.js","webpack:///./node_modules/react-transition-group/esm/config.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack:///./node_modules/react-transition-group/esm/Transition.js","webpack:///./node_modules/react-transition-group/esm/CSSTransition.js","webpack:///./node_modules/dom-helpers/esm/addClass.js","webpack:///./node_modules/dom-helpers/esm/hasClass.js","webpack:///./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroup.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/react-transition-group/esm/ReplaceTransition.js","webpack:///./node_modules/react-transition-group/esm/SwitchTransition.js","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./node_modules/react-tooltip/src/constant.js","webpack:///./node_modules/react-tooltip/src/decorators/staticMethods.js","webpack:///./node_modules/react-tooltip/src/decorators/customEvent.js","webpack:///./node_modules/react-tooltip/src/decorators/bodyMode.js","webpack:///./node_modules/react-tooltip/src/utils/getPosition.js","webpack:///./node_modules/react-tooltip/src/utils/getTipContent.js","webpack:///./node_modules/react-tooltip/src/utils/aria.js","webpack:///./node_modules/react-tooltip/src/utils/nodeListToArray.js","webpack:///./node_modules/react-tooltip/src/decorators/defaultStyles.js","webpack:///./node_modules/react-tooltip/src/decorators/styler.js","webpack:///./node_modules/react-tooltip/src/decorators/trackRemoval.js","webpack:///./node_modules/react-tooltip/src/index.js","webpack:///./node_modules/react-tooltip/src/decorators/windowListener.js","webpack:///./node_modules/react-tooltip/src/decorators/isCapture.js","webpack:///./node_modules/react-tooltip/src/decorators/getEffect.js","webpack:///./node_modules/react-tooltip/src/utils/uuid.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","React","toString","isArray","val","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","forEach","obj","fn","length","isArrayBuffer","isBuffer","constructor","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","slice","arguments","extend","a","b","thisArg","trim","str","replace","stripBOM","content","charCodeAt","ReactDOM","_typeof","iterator","objA","objB","keys","undefined","aKeys","bKeys","len","keysMap","aValue","bValue","aValueKeys","bValueKeys","aValueKey","promiseArg","resolve","reject","wrappedPromise","Promise","_resolve","_reject","then","error","promise","reason","cancel","__assign","assign","apply","this","DefaultOptions","onlyResolvesLast","config","debounceSingleton","debounceCache","_createDebouncedFunction","asyncFunction","cancelPrevious","debouncedFunc","func","wait","options","initialPromise","args","getDebouncedFunction","finalOptions","debouncedFn","Array","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","parts","v","toISOString","JSON","stringify","push","join","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","XMLHttpRequest","process","transformRequest","data","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","method","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","type","request","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","abort","send","enhanceError","message","code","Error","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","source","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","filter","Cancel","IconMan","xmlns","x","y","viewBox","IconWoman","IconConfusedFace","width","height","fill","IconVoteUp","onClick","className","cx","cy","IconVoteDown","IconChatBox","getWait","defer","deferred","lastCallAt","timer","pendingArgs","currentWait","currentTime","Date","getTime","isCold","leading","accumulate","clearTimeout","setTimeout","flush","argsIndex","results","thisDeferred","defaultState","loading","search","ageFrom","ageTo","genderMale","genderFemale","location","defaultLocation","questionGame","defaultQuestionGame","hero","defaultUser","online","regular","newest","popular","galleryPhotos","defaultGalleryPhoto","messages","container","getElementById","stateAttribute","getAttribute","props","currentUser","userId","gender","userGender","initialState","render","FrontPage","searchAgeMin","searchAgeMax","userCardVisible","galleryCardVisible","openInNewTab","fillEmptyPhotos","state","setState","useState","Hero","users","onQuestionGameVote","first","questionGameUpdateFirst","user","questionGameVote","second","id","questionGameUpdateSecond","onResetFilter","RegisterBanner","Messages","SearchForm","ageMin","ageMax","onChange","all","getUsers","getQuestionGameUsers","newState","UsersCard","title","cardTitle","CardTitleType","Regular","titleUrl","cardTitleUrl","Online","Newest","Popular","GalleryCard","GalleryPhotos","photos","photo","age","city","photoId","display","display64","baseUrl","genderAll","ageAndLocation","QuestionGameVoteType","updateUser","userType","host","serviceEndpoint","getConfiguration","amzius","amzius2","lytis","vietove","vietovep","Axios","mergeConfig","createInstance","defaultConfig","context","instance","axios","instanceConfig","CancelToken","isCancel","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","shift","getUri","handlers","use","eject","h","transformData","throwIfCancellationRequested","throwIfRequested","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","array","noop","nextTick","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","write","expires","path","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","hash","hostname","port","pathname","charAt","requestURL","executor","TypeError","resolvePromise","token","callback","arr","performLocationSearch","query","sex","vote","valentineId","otherValentineId","console","log","getMessages","QuestionGameCard","pageLoading","Photo","tooltip","link","map","index","EmptyPhoto","firstRender","useRef","useEffect","current","action","thumbClassName","trackClassName","defaultValue","min","max","pearling","renderThumb","LocationInput","onSelected","_jsxFileName","_extends","pauseEvent","stopPropagation","preventDefault","sanitizeInValue","prepareOutValue","addHandlers","eventMap","ReactSlider","_React$Component","subClass","superClass","_props","_this","onKeyUp","onEnd","onMouseUp","getMouseEventMap","onTouchEnd","getTouchEventMap","onBlur","getKeyDownEventMap","onMouseMove","position","getMousePosition","diffPosition","getDiffPosition","newValue","getValueFromPosition","move","onTouchMove","touches","getTouchPosition","isScrolling","diffMainDir","startPosition","diffScrollDir","Math","abs","onKeyDown","ctrlKey","shiftKey","altKey","moveDownByStep","moveUpByStep","pageFn","step","onSliderMouseDown","disabled","button","snapDragDisabled","forceValueFromPosition","start","onSliderClick","hasMoved","valueAtPos","trimAlignValue","calcValue","calcOffsetFromPosition","createOnKeyDown","createOnMouseDown","createOnTouchStart","handleResize","resizeTimeout","pendingResizeTimeouts","resize","style","thumbActiveClassName","orientation","ariaLabel","valueNow","ariaValuetext","renderTrack","offsetFrom","offsetTo","buildTrackStyle","upperBound","tempArray","zIndices","sliderLength","__proto__","_proto","componentDidMount","UNSAFE_componentWillReceiveProps","newProps","componentDidUpdate","componentWillUnmount","clearPendingResizeTimeouts","removeEventListener","removeHandlers","fireChangeEvent","getValue","getClosestIndex","pixelOffset","minDist","Number","MAX_VALUE","closestIndex","offset","calcOffset","dist","axisKey","orthogonalAxisKey","touch","keydown","keyup","focusout","mousemove","mouseup","touchmove","touchend","diffValue","thumbSize","startValue","invert","slider","thumb","thumb0","sizeKey","sliderRect","getBoundingClientRect","sliderSize","sliderMax","posMaxKey","sliderMin","posMinKey","range","_this2","nextValue","minDistance","nextTimeout","thumbRef","focus","splice","prevState","oldValue","_this$state","_this$props","valueBefore","valueAfter","pushSucceeding","padding","trimSucceeding","pushPreceding","trimPreceding","alignValue","trimValue","trimmed","valModStep","parseFloat","toFixed","event","buildThumbStyle","touchAction","willChange","zIndex","renderThumbs","styles","res","_i","renderTracks","tracks","lastIndex","_this3","withTracks","thumbs","ref","onMouseDown","Component","displayName","defaultProps","__self","__source","propTypes","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bool","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Footer","super","prevProps","children","TransitionGroup","CSSTransition","classNames","enter","exit","src","backgroundColor","borderColor","border","textColor","place","effect","bottom","debounce","waitFor","setValue","suggestions","setSuggestions","shouldRenderSuggestions","onSuggestionsClearRequested","onSuggestionsFetchRequested","locations","onSuggestionSelected","suggestion","getSuggestionValue","renderSuggestion","inputProps","placeholder","_","highlightFirstSuggestion","_react","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","_interopRequireWildcard","_propTypes","_interopRequireDefault","_arrays","_Autowhatever","_theme","WeakMap","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","configurable","writable","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_getPrototypeOf","setPrototypeOf","_setPrototypeOf","alwaysTrue","Autosuggest","_Component","_inherits","Derived","Constructor","protoProps","staticProps","_super","Super","NewTarget","_ref2","_alwaysRenderSuggestions","alwaysRenderSuggestions","_classCallCheck","justClickedOnSuggestionsContainer","detail","suggestionsContainer","parentNode","autowhatever","_ref3","sectionIndex","itemIndex","updateHighlightedSuggestion","pressedSuggestion","justSelectedSuggestion","justMouseEntered","multiSection","input","suggestionValue","resetHighlightedSuggestion","_this$props2","focusInputOnSuggestionClick","_this$getSuggestionIn","getSuggestionIndices","findSuggestionElement","suggestionIndex","clickedSuggestion","getSuggestion","clickedSuggestionValue","maybeCallOnChange","closeSuggestions","_this$props3","highlightedSuggestion","getHighlightedSuggestion","shouldRender","isFocused","highlightedSectionIndex","highlightedSuggestionIndex","valueBeforeUpDown","isCollapsed","blurEvent","_ref4","onMouseEnter","onSuggestionMouseEnter","onMouseLeave","onSuggestionMouseLeave","onSuggestionMouseDown","onTouchStart","onSuggestionTouchStart","onSuggestionTouchMove","onSuggestionClick","_ref5","containerProps","renderSuggestionsContainer","getQuery","justPressedUpDown","onDocumentMouseDown","onDocumentMouseUp","itemsContainer","nextProps","willRenderSuggestions","revealSuggestions","_this$props4","onSuggestionHighlighted","prevValue","shouldResetValueBeforeUpDown","_this$props5","getSectionSuggestions","suggestionElement","parseInt","startNode","_this$props$inputProp","_this$props6","renderInputComponent","renderSectionTitle","theme","_this$state2","_onFocus","onFocus","_onKeyDown","isOpen","items","autowhateverInputProps","scrollTop","keyCode","newHighlightedSectionIndex","newHighlightedItemIndex","getSuggestionValueByIndex","_newValue","willCloseSuggestions","renderSuggestionData","renderItemsContainer","renderItem","renderItemData","getSectionItems","highlightedItemIndex","itemProps","mapToAutowhateverTheme","storeAutowhateverRef","_ref","defaultTheme","arrA","arrB","_sectionIterator","_reactThemeable","_SectionTitle","_ItemList","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","next","done","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","arr2","emptyObject","Autowhatever","userRef","highlightedItem","section","isInputFocused","nextPrev","_this$sectionIterator2","sectionIterator","setSectionsItems","setSectionIterator","setTheme","ensureHighlightedItemIsVisible","sectionsItems","sectionsLengths","allSectionsAreEmpty","every","itemsCount","keyPrefix","sectionKeyPrefix","isFirstSection","onHighlightedItemChange","getItemId","storeItemsListReference","itemOffsetRelativeToContainer","offsetParent","offsetTop","offsetHeight","renderedItems","renderSections","renderItems","ariaActivedescendant","itemsContainerId","role","inputComponent","autoComplete","storeInputReference","storeItemsContainerReference","containerOpen","inputOpen","inputFocused","itemsContainerOpen","itemsList","item","itemFirst","itemHighlighted","sectionContainer","sectionContainerFirst","sectionTitle","sliceIterator","_position","nextNonEmptySectionIndex","prev","_position2","prevNonEmptySectionIndex","isLast","_toConsumableArray","_objectAssign","_objectAssign2","truthy","classNameDecorator","_len","names","_key","propIsEnumerable","propertyIsEnumerable","ToObject","ownEnumerableKeys","getOwnPropertyNames","to","_compareObjects","SectionTitle","_Item","ItemsList","sectionPrefix","isItemPropsFunction","isFirst","isHighlighted","itemKey","itemPropsObj","allItemProps","storeHighlightedItemReference","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","restProps","storeItemReference","suggestionsContainerOpen","suggestionsList","suggestionFirst","suggestionHighlighted","no","yes","unread","dangerouslySetInnerHTML","__html","answered","_inheritsLoose","replaceClassName","origClass","classToRemove","createContext","ENTERING","ENTERED","Transition","initialStatus","appear","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","nodeRef","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","nextState","setNextCallback","_this4","active","handler","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","Provider","cloneElement","Children","only","contextType","UNMOUNTED","EXITED","EXITING","classes","classList","baseVal","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","add","contains","hasClass","_addClass","_this$appliedClasses$","base","getChildMapping","mapFn","child","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","values","k","handleExited","contextValue","mounted","currentChildMapping","component","childFactory","ReplaceTransition","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","idx","originalArgs","_child$props","toArray","inProp","_React$Children$toArr","_leaveRenders","_enterRenders","modes","callHook","cb","_element$props","leaveRenders","changeState","enterRenders","SwitchTransition","appeared","oldChildren","newChildren","isValidElement","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rng","byteToHex","buf","bth","rnds","random","ii","HIDE","REBUILD","SHOW","dispatchGlobalEvent","eventName","opts","CustomEvent","createEvent","initEvent","dispatchEvent","checkStatus","dataEventOff","show","isCapture","currentTarget","currentItem","hideTooltip","setUntargetItems","getTargetArray","showTooltip","targetArray","customListeners","listener","bodyListener","respectEffect","customEvent","tip","forId","isCustomEvent","isTargetBelongsToTooltip","getEffect","proxy","makeProxy","findCustomEvents","dataAttribute","events","getBody","getElementsByTagName","desiredPlace","getDimensions","tipWidth","tipHeight","targetWidth","targetHeight","getCurrentOffset","mouseX","mouseY","defaultOffset","getDefaultPosition","calculateOffset","extraOffsetX","extraOffsetY","windowWidth","innerWidth","windowHeight","innerHeight","getParent","parentTop","parentLeft","getTipOffsetLeft","offsetX","getTipOffsetTop","offsetY","outsideRight","getTipOffsetRight","outsideBottom","getTipOffsetBottom","outside","outsideLeft","outsideTop","inside","placesList","insideList","newPlace","isNewState","shouldUpdatePlace","left","top","boundingClientRect","targetTop","targetLeft","clientX","clientY","right","disToMouse","currentParent","computedStyle","getComputedStyle","getPropertyValue","parentElement","getContent","multiline","regexp","parseAria","ariaObj","nodeList","defaultColors","dark","text","background","arrow","success","warning","info","light","generateTooltipStyle","uuid","customColors","hasBorder","colors","arrowColor","generateStyle","getDefaultPopupColors","getPopupColors","ReactTooltip","hide","CONSTANT","rebuild","globalRebuild","mount","unbindListener","bindListener","globalShow","hasTarget","globalHide","staticMethods","bindWindowEvents","resizeHide","onWindowResize","unbindWindowEvents","windowListener","ele","customBindListener","eventOff","dataEvent","customListener","customUnbindListener","isBodyMode","bodyMode","bindBodyListener","possibleCustomEvents","possibleCustomEventsOff","body","customEvents","customEventsOff","unbindBodyListener","bodyModeListeners","mouseover","updateTooltip","mouseout","targetEventOff","trackRemoval","extraClass","html","delayHide","delayShow","currentEvent","ariaProps","isEmptyTip","disable","originTooltip","isMultiline","delayShowLoop","delayHideLoop","delayReshow","intervalUpdateContent","insecure","class","delayUpdate","globalEventOff","afterShow","afterHide","overridePosition","scrollHide","wrapper","clickable","methodArray","clearTimer","removeScrollListener","tooltipRef","matches","msMatchesSelector","mozMatchesSelector","selector","escaped","nodeListToArray","shadowRoot","querySelectorAll","unbindBasicListener","isCaptureMode","bindRemovalTracker","unbindRemovalTracker","getTipContent","isGlobalCall","some","switchToSolid","FocusEvent","getPosition","reshowDelay","updateState","addScrollListener","setInterval","updatePosition","getTooltipContent","delayTime","eventTarget","mouseOnToolTip","isInvisible","isScroll","isMyElement","resetState","isVisible","listenForTooltipExit","removeListenerForTooltipExit","hideTooltipOnScroll","clearInterval","Boolean","find","color","tooltipClass","hasCustomColors","Wrapper","supportedWrappers","wrapperClassName","htmlContent","data-id","newAriaProps","MutationObserver","WebKitMutationObserver","MozMutationObserver","observer","mutations","m1","mutation","m2","removedNodes","observe","childList","subtree","removalTracker","disconnect"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 22);\n","module.exports = React;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","export * from './Search';\r\nexport * from './User';\r\nexport * from './GalleryPhoto';\r\nexport * from './Location';\r\nexport * from './cardTitle';\r\nexport * from './QuestionGame';\r\nexport * from './Message';\r\nexport * from './Configuration';","export * from './FrontPage';\r\nexport * from './Hero';\r\nexport * from './RegisterBanner';\r\nexport * from './SearchForm';\r\nexport * from './UsersCard';\r\nexport * from './Footer';\r\nexport * from './EmptyPhoto';\r\nexport * from './Photo';\r\nexport * from './GalleryCard';\r\nexport * from './LocationInput';\r\nexport * from './QuestionGameCard';\r\nexport * from './Messages';","module.exports = ReactDOM;","module.exports = require('./lib/axios');","export * from './debounce';\r\nexport * from './icons';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = compareObjects;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction compareObjects(objA, objB) {\n var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (objA === objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (aKeys.length !== bKeys.length) {\n return true;\n }\n\n var keysMap = {};\n var i, len;\n\n for (i = 0, len = keys.length; i < len; i++) {\n keysMap[keys[i]] = true;\n }\n\n for (i = 0, len = aKeys.length; i < len; i++) {\n var key = aKeys[i];\n var aValue = objA[key];\n var bValue = objB[key];\n\n if (aValue === bValue) {\n continue;\n }\n\n if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') {\n return true;\n }\n\n var aValueKeys = Object.keys(aValue);\n var bValueKeys = Object.keys(bValue);\n\n if (aValueKeys.length !== bValueKeys.length) {\n return true;\n }\n\n for (var n = 0, length = aValueKeys.length; n < length; n++) {\n var aValueKey = aValueKeys[n];\n\n if (aValue[aValueKey] !== bValue[aValueKey]) {\n return true;\n }\n }\n }\n\n return false;\n}","export type ResolveCallback = (value: T | PromiseLike) => void\nexport type RejectCallback = (reason?: any) => void\nexport type CancelCallback = () => void\n\nexport type ImperativePromise = {\n promise: Promise\n resolve: ResolveCallback\n reject: RejectCallback\n cancel: CancelCallback\n}\n\nexport function createImperativePromise(promiseArg?: Promise | null | undefined): ImperativePromise {\n let resolve: ResolveCallback | null = null\n let reject: RejectCallback | null = null\n\n const wrappedPromise = new Promise((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n })\n\n promiseArg && promiseArg.then(\n val => {\n resolve && resolve(val)\n },\n error => {\n reject && reject(error)\n }\n )\n\n return {\n promise: wrappedPromise,\n resolve: (value: T | PromiseLike) => {\n resolve && resolve(value)\n },\n reject: (reason?: any) => {\n reject && reject(reason)\n },\n cancel: () => {\n resolve = null\n reject = null\n }\n }\n}\n\n\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import DebouncePromise from 'debounce-promise';\nimport { onlyResolvesLast } from 'awesome-only-resolves-last-promise';\n\ntype ArgumentsType = T extends (...args: infer A) => any ? A : never;\n\nexport type AwesomeDebounceOptions = {\n key: (...args: any[]) => string | null | undefined;\n onlyResolvesLast: boolean;\n} & DebouncePromise.DebounceOptions;\n\n\nconst DefaultOptions = {\n // One distinct debounced function is created per key and added to an internal cache\n // By default, the key is null, which means that all the calls\n // will share the same debounced function\n key: (..._args: any[]) => null,\n\n // By default, a debounced function will only resolve\n // the last promise it returned\n // Former calls will stay unresolved, so that you don't have\n // to handle concurrency issues in your code\n // Setting this to false means all returned promises will resolve to the last result\n onlyResolvesLast: true,\n};\n\n\ntype CacheConfig any> = {\n func: Fun,\n wait: number,\n options: AwesomeDebounceOptions\n}\n\n// TODO not useful right now but will be useful if we want to support cancellation\ntype CacheFunction any> = {\n func: Fun,\n // cancel: () => void,\n}\n\n// We create a debouncing function cache, because when wrapping the original function,\n// we may actually want to route the function call to different debounced functions depending function paameters\nclass DebounceCache any> {\n config: CacheConfig;\n\n debounceSingleton: CacheFunction | null; // key not used\n debounceCache: { [key: string]: CacheFunction }; // key used\n\n constructor(config: CacheConfig) {\n this.config = config;\n this.debounceSingleton = null;\n this.debounceCache = {}; // when key feature is used\n }\n\n _createDebouncedFunction(): CacheFunction {\n let debouncedFunc: Fun = DebouncePromise(this.config.func, this.config.wait, this.config.options) as any; // TODO TS\n if (this.config.options.onlyResolvesLast) {\n debouncedFunc = onlyResolvesLast(debouncedFunc);\n }\n return {\n func: debouncedFunc,\n };\n };\n\n getDebouncedFunction(\n args: ArgumentsType,\n ): CacheFunction {\n const key = this.config.options.key(...args);\n if (key === null || typeof key === 'undefined') {\n if (!this.debounceSingleton) {\n this.debounceSingleton = this._createDebouncedFunction();\n }\n return this.debounceSingleton;\n }\n else {\n if (!this.debounceCache[key]) {\n this.debounceCache[key] = this._createDebouncedFunction();\n }\n return this.debounceCache[key];\n }\n }\n}\n\n// extra methods are \"added\" to the the returned debounced async function\ntype ReturnedFunction = Fun & {\n // cancel: (key?: string) => void\n}\n\nfunction AwesomeDebouncePromise any>(\n func: Fun,\n wait: number,\n options?: Partial,\n): ReturnedFunction {\n const finalOptions: AwesomeDebounceOptions = {\n ...DefaultOptions,\n ...options,\n };\n\n const debounceCache = new DebounceCache({\n func,\n wait,\n options: finalOptions,\n });\n\n const AwesomeDebouncePromiseWrapper = ((...args: ArgumentsType) => {\n const debouncedFn = debounceCache.getDebouncedFunction(\n args,\n ).func;\n return debouncedFn(...args);\n }) as ReturnedFunction; // TODO fix TS\n\n /*\n AwesomeDebouncePromiseWrapper.cancel = (key?: string) => {\n\n };\n */\n return AwesomeDebouncePromiseWrapper;\n}\n\nexport default AwesomeDebouncePromise;\n","import {\n createImperativePromise,\n CancelCallback,\n} from 'awesome-imperative-promise';\n\ntype ArgumentsType = T extends (...args: infer A) => any ? A : never;\n\n// see https://stackoverflow.com/a/54825370/82609\nexport function onlyResolvesLast any>(\n asyncFunction: T,\n): T {\n let cancelPrevious: CancelCallback | null = null;\n\n const wrappedFunction = (...args: ArgumentsType) => {\n cancelPrevious && cancelPrevious();\n const initialPromise = asyncFunction(...args);\n const { promise, cancel } = createImperativePromise(initialPromise);\n cancelPrevious = cancel;\n return promise;\n };\n\n return wrappedFunction as any; // TODO fix TS\n}\n","export * from './users';\r\nexport * from './location';\r\nexport * from './questionGame';\r\nexport * from './messages';","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","import * as React from \"react\";\r\n\r\ninterface IconProps {\r\n onClick?: (event: React.MouseEvent) => void;\r\n}\r\n\r\nexport const IconMan = () => {\r\n return \r\n \r\n \r\n ;\r\n}\r\n\r\nexport const IconWoman = () => {\r\n return \r\n \r\n \r\n \r\n \r\n ;\r\n}\r\n\r\nexport const IconConfusedFace = () => {\r\n return ;\r\n}\r\n\r\nexport const IconVoteUp = ({ onClick }: IconProps) => {\r\n return \r\n \r\n \r\n ;\r\n}\r\n\r\nexport const IconVoteDown = ({ onClick }: IconProps) => {\r\n return \r\n \r\n \r\n ;\r\n}\r\n\r\nexport const IconChatBox = () => {\r\n return ;\r\n}","/* global setTimeout, clearTimeout */\n\nmodule.exports = function debounce (fn, wait = 0, options = {}) {\n let lastCallAt\n let deferred\n let timer\n let pendingArgs = []\n return function debounced (...args) {\n const currentWait = getWait(wait)\n const currentTime = new Date().getTime()\n\n const isCold = !lastCallAt || (currentTime - lastCallAt) > currentWait\n\n lastCallAt = currentTime\n\n if (isCold && options.leading) {\n return options.accumulate\n ? Promise.resolve(fn.call(this, [args])).then(result => result[0])\n : Promise.resolve(fn.call(this, ...args))\n }\n\n if (deferred) {\n clearTimeout(timer)\n } else {\n deferred = defer()\n }\n\n pendingArgs.push(args)\n timer = setTimeout(flush.bind(this), currentWait)\n\n if (options.accumulate) {\n const argsIndex = pendingArgs.length - 1\n return deferred.promise.then(results => results[argsIndex])\n }\n\n return deferred.promise\n }\n\n function flush () {\n const thisDeferred = deferred\n clearTimeout(timer)\n\n Promise.resolve(\n options.accumulate\n ? fn.call(this, pendingArgs)\n : fn.apply(this, pendingArgs[pendingArgs.length - 1])\n )\n .then(thisDeferred.resolve, thisDeferred.reject)\n\n pendingArgs = []\n deferred = null\n }\n}\n\nfunction getWait (wait) {\n return (typeof wait === 'function') ? wait() : wait\n}\n\nfunction defer () {\n const deferred = {}\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve\n deferred.reject = reject\n })\n return deferred\n}\n","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\n\r\nimport \"./styles/main.scss\";\r\n\r\nimport { FrontPage, FrontPageState } from \"./components/\";\r\nimport { defaultLocation, defaultQuestionGame, defaultUser, defaultGalleryPhoto, User } from \"./models\";\r\n\r\nconst defaultState: FrontPageState = {\r\n loading: false,\r\n search: { ageFrom: 18, ageTo: 80, genderMale: false, genderFemale: false, location: defaultLocation },\r\n questionGame: defaultQuestionGame,\r\n hero: Array(9).fill(defaultUser),\r\n online: Array(4).fill(defaultUser),\r\n regular: Array(4).fill(defaultUser),\r\n newest: Array(4).fill(defaultUser),\r\n popular: Array(4).fill(defaultUser),\r\n galleryPhotos: Array(8).fill(defaultGalleryPhoto),\r\n messages: null,\r\n};\r\n\r\nconst container = document.getElementById(\"frontpage\");\r\nif (container !== null) {\r\n const stateAttribute = JSON.parse(container.getAttribute('data-initialState'));\r\n const props = JSON.parse(container.getAttribute('data-props'));\r\n const currentUser = (props.userId > 0 ? { userId: props.userId, gender: props.userGender } : null) as User;\r\n\r\n const initialState = {\r\n ...defaultState,\r\n ...stateAttribute,\r\n };\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"frontpage\")\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Hero, SearchForm, UsersCard, RegisterBanner, GalleryCard, Messages } from '../components';\r\nimport { User, defaultUser, defaultQuestionGame, Search, GalleryPhoto, defaultGalleryPhoto, cardTitle, cardTitleUrl, CardTitleType, defaultLocation, QuestionGame, QuestionGameUser, questionGameUpdateFirst, questionGameUpdateSecond, Message } from '../models';\r\nimport { getUsers, getQuestionGameUsers, questionGameVote, getMessages } from '../services';\r\n\r\nexport interface FrontPageProps {\r\n openInNewTab: boolean;\r\n userCardVisible: boolean;\r\n galleryCardVisible: boolean;\r\n initialState: FrontPageState;\r\n currentUser: User;\r\n searchAgeMin: number;\r\n searchAgeMax: number;\r\n}\r\n\r\nexport interface FrontPageState {\r\n loading: boolean;\r\n search: Search;\r\n hero: User[];\r\n online: User[];\r\n regular: User[];\r\n newest: User[];\r\n popular: User[];\r\n galleryPhotos: GalleryPhoto[];\r\n questionGame: QuestionGame;\r\n messages: Message[];\r\n}\r\n\r\nexport const fillEmptyPhotos = (state: FrontPageState): FrontPageState => {\r\n return {\r\n ...state,\r\n hero: [...state.hero, ...Array(9).fill(defaultUser)].slice(0, 9) as User[],\r\n online: [...state.online, ...Array(4 - state.online.length).fill(defaultUser)].slice(0, 4) as User[],\r\n regular: [...state.regular, ...Array(4).fill(defaultUser)].slice(0, 4) as User[],\r\n newest: [...state.newest, ...Array(4).fill(defaultUser)].slice(0, 4) as User[],\r\n popular: [...state.popular, ...Array(4).fill(defaultUser)].slice(0, 4) as User[],\r\n galleryPhotos: [...state.galleryPhotos, ...Array(8).fill(defaultGalleryPhoto)].slice(0, 8) as GalleryPhoto[],\r\n };\r\n};\r\n\r\nexport const FrontPage = ({ initialState, currentUser, searchAgeMin, searchAgeMax, openInNewTab, userCardVisible, galleryCardVisible }: FrontPageProps) => {\r\n const [state, setState] = useState(fillEmptyPhotos(initialState));\r\n\r\n return <>\r\n
\r\n

Populiariausia pažinčių svetainė Lietuvoje!

\r\n
\r\n {\r\n if (state.questionGame.first.userId === userId) {\r\n setState(questionGameUpdateFirst(state, { ...state.questionGame.first, loading: true }));\r\n const user = await questionGameVote(type, userId, state.questionGame.second.userId, state.search.ageFrom, state.search.ageTo, state.questionGame.first.gender, state.search.location.id);\r\n setState(questionGameUpdateFirst(state, user));\r\n }\r\n\r\n if (state.questionGame.second.userId === userId) {\r\n setState(questionGameUpdateSecond(state, { ...state.questionGame.first, loading: true }));\r\n const user = await questionGameVote(type, userId, state.questionGame.first.userId, state.search.ageFrom, state.search.ageTo, state.questionGame.second.gender, state.search.location.id);\r\n setState(questionGameUpdateSecond(state, user));\r\n }\r\n }} onResetFilter={() => {\r\n const search = {\r\n ...state.search,\r\n ageFrom: state.search.ageFrom - 5 < 18 ? 18 : state.search.ageFrom - 5,\r\n ageTo: state.search.ageTo + 5 > 80 ? 80 : state.search.ageTo + 5,\r\n location: defaultLocation\r\n };\r\n setState({ ...state, search: search, loading: true });\r\n }} />\r\n
\r\n {currentUser === null ? : }\r\n {\r\n Promise.all([getUsers(search), getQuestionGameUsers(search)])\r\n .then(([newState, questionGame]) => {\r\n return {\r\n ...newState,\r\n questionGame: questionGame,\r\n messages: state.messages,\r\n galleryPhotos: state.galleryPhotos\r\n };\r\n }).then(fillEmptyPhotos).then(setState);\r\n }} />\r\n
\r\n
\r\n
\r\n\r\n {userCardVisible ?\r\n : null}\r\n\r\n\r\n {userCardVisible ? : null}\r\n\r\n {userCardVisible ? : null}\r\n\r\n {userCardVisible ? : null}\r\n\r\n {galleryCardVisible ? : null}\r\n ;\r\n};","export interface User {\r\n userId: number;\r\n photo?: string;\r\n name?: string;\r\n age?: number;\r\n city?: string;\r\n gender?: number;\r\n}\r\n\r\nexport const defaultUser: User = { userId: null, photo: null, name: null, age: null, city: null, gender: null };","export interface GalleryPhoto {\r\n photoId: number;\r\n photo: string;\r\n name: string;\r\n age: number;\r\n city: string;\r\n}\r\n\r\nexport const defaultGalleryPhoto: GalleryPhoto = { photoId: null, photo: null, name: null, age: null, city: null };","export interface Location {\r\n id: string;\r\n name: string;\r\n display: string;\r\n display64: string;\r\n}\r\n\r\nexport const defaultLocation: Location = { id: '', name: '', display: '', display64: '' };","import { Search, User } from '../models';\r\n\r\nexport enum CardTitleType {\r\n Online,\r\n Regular,\r\n Newest,\r\n Popular,\r\n GalleryPhotos,\r\n}\r\n\r\nconst baseUrl = 'https://pazintys.draugas.lt'\r\n\r\nexport const cardTitleUrl = (type: CardTitleType, search: Search) => {\r\n const ageFrom = `&amzius=${search.ageFrom}`;\r\n const ageTo = `&amzius2=${search.ageTo}`;\r\n const gender = search.genderFemale && !search.genderMale ? '&lytis=1' : !search.genderFemale && search.genderMale ? '&lytis=2' : '';\r\n const location = search.location.id !== null\r\n ? `&vietove=${search.location.id}&vietovep=${search.location.display64}` : '';\r\n\r\n switch (type) {\r\n case CardTitleType.Popular:\r\n return `${baseUrl}/tgrupe.cfm?${ageFrom}${ageTo}${gender}${location}`;\r\n case CardTitleType.Newest:\r\n return `${baseUrl}/nagrupe.cfm?${ageFrom}${ageTo}${gender}${location}`;\r\n case CardTitleType.Online:\r\n return `${baseUrl}/pngrupe.cfm?${ageFrom}${ageTo}${gender}${location}`;\r\n case CardTitleType.Regular:\r\n default:\r\n return `${baseUrl}/ngrupe.cfm?${ageFrom}${ageTo}${gender}${location}`;\r\n }\r\n}\r\n\r\nexport const cardTitle = (type: CardTitleType, search: Search, currentUser?: User) => {\r\n const genderAll = (search.genderFemale && search.genderMale) || (search.genderFemale === false && search.genderMale === false);\r\n const genderFemale = genderAll === false && search.genderFemale;\r\n\r\n const ageAndLocation = search.location.id !== ''\r\n ? `(${search.ageFrom}-${search.ageTo} m., ${search.location.display})`\r\n : `${search.ageFrom}-${search.ageTo} m.`;\r\n\r\n switch (type) {\r\n case CardTitleType.Newest:\r\n if (genderAll) {\r\n return `Naujausi ${ageAndLocation}`;\r\n } else {\r\n return genderFemale ? `Naujausios ${ageAndLocation}` : `Naujausi ${ageAndLocation}`;\r\n }\r\n case CardTitleType.Online:\r\n if (genderAll) {\r\n return `Prisijungę ${ageAndLocation}`;\r\n } else {\r\n return genderFemale ? `Prisijungusios ${ageAndLocation}` : `Prisijungę ${ageAndLocation}`;\r\n }\r\n case CardTitleType.Popular:\r\n if (genderAll) {\r\n return `Populiariausi ${ageAndLocation}`;\r\n } else {\r\n return genderFemale ? `Populiariausios ${ageAndLocation}` : `Populiariausi ${ageAndLocation}`;\r\n }\r\n case CardTitleType.GalleryPhotos:\r\n if (typeof currentUser === 'undefined' || currentUser === null || currentUser.gender == 2) {\r\n return 'Mėgstamiausios merginų nuotraukos';\r\n } else {\r\n return 'Mėgstamiausios vaikinų nuotraukos';\r\n }\r\n case CardTitleType.Regular:\r\n default:\r\n return `${genderAll ? 'Nariai' : genderFemale ? 'Merginos' : 'Vaikinai'} ${ageAndLocation}`;\r\n }\r\n};\r\n","import { User } from '../models';\r\nimport { FrontPageState } from '../components';\r\n\r\nexport type QuestionGameVoteCallback = ((userId: number, type: QuestionGameVoteType) => void);\r\n\r\nexport enum QuestionGameVoteType {\r\n no,\r\n yes\r\n}\r\n\r\nexport interface QuestionGameUser extends User {\r\n loading: boolean;\r\n gender?: number;\r\n}\r\n\r\nexport interface QuestionGame {\r\n first: QuestionGameUser;\r\n second: QuestionGameUser;\r\n}\r\n\r\nexport const defaultQuestionGame: QuestionGame = { first: { userId: 0, loading: true }, second: { userId: 0, loading: false } }\r\n\r\nconst updateUser = (state: FrontPageState, userType: string, user: QuestionGameUser): FrontPageState => {\r\n return {\r\n ...state,\r\n questionGame: {\r\n ...state.questionGame,\r\n [userType]: user,\r\n }\r\n };\r\n};\r\n\r\nexport const questionGameUpdateFirst = (state: FrontPageState, user: QuestionGameUser) => updateUser(state, 'first', user);\r\nexport const questionGameUpdateSecond = (state: FrontPageState, user: QuestionGameUser) => updateUser(state, 'second', user);","export interface Configuration {\r\n serviceEndpoint: string;\r\n}\r\n\r\nexport function getConfiguration(): Configuration {\r\n switch (window.location.host) {\r\n case 'www.draugas.lt':\r\n case 'local.www.draugas.lt':\r\n return {\r\n serviceEndpoint: '//demopazintys.draugas.lt/',\r\n };\r\n default:\r\n return {\r\n serviceEndpoint: '',\r\n };\r\n }\r\n}","import axios from 'axios';\r\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\r\nimport { User, defaultUser, Search, getConfiguration } from '../models';\r\nimport { FrontPageState } from '../components';\r\n\r\nexport const getUsers = AwesomeDebouncePromise(async (search: Search): Promise => {\r\n const result = await axios(\r\n `${getConfiguration().serviceEndpoint}/titulinis.cfm`,\r\n {\r\n params: {\r\n amzius: search.ageFrom,\r\n amzius2: search.ageTo,\r\n lytis: (search.genderMale && search.genderFemale) || (search.genderMale === false && search.genderFemale === false)\r\n ? ''\r\n : search.genderFemale\r\n ? '1'\r\n : '2',\r\n vietove: search.location.id,\r\n vietovep: search.location.display64,\r\n },\r\n }\r\n );\r\n return { ...result.data, search: search };\r\n}, 300);","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import axios from 'axios';\r\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\r\nimport { Location, getConfiguration } from '../models';\r\n\r\nconst search = async (query: string): Promise => {\r\n const result = await axios(\r\n `${getConfiguration().serviceEndpoint}/miestai.cfm?t=2&q=${query}`\r\n );\r\n return result.data;\r\n};\r\n\r\nexport const performLocationSearch = AwesomeDebouncePromise(search, 300);","import axios from 'axios';\r\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\r\nimport { Search, QuestionGame, QuestionGameUser, QuestionGameVoteType, getConfiguration } from '../models';\r\n\r\nexport const getQuestionGameUsers = AwesomeDebouncePromise(async (search: Search): Promise => {\r\n const result = await axios(\r\n `${getConfiguration().serviceEndpoint}/dotnet/question/webservice.asmx/Landing`,\r\n {\r\n withCredentials: true,\r\n params: {\r\n ageFrom: search.ageFrom,\r\n ageTo: search.ageTo,\r\n sex: (search.genderFemale && search.genderMale) || (search.genderFemale === false && search.genderMale === false) ? 0 : search.genderFemale ? 1 : 2,\r\n location: search.location.id,\r\n },\r\n }\r\n );\r\n return result.data;\r\n}, 300);\r\n\r\nexport const questionGameVote = async (vote: QuestionGameVoteType, valentineId: number, otherValentineId: number, ageFrom: number, ageTo: number, sex: number, location: string): Promise => {\r\n console.log(ageFrom);\r\n console.log(sex);\r\n const result = await axios(\r\n `${getConfiguration().serviceEndpoint}/dotnet/question/webservice.asmx/LandingVote`,\r\n {\r\n withCredentials: true,\r\n params: {\r\n vote: vote,\r\n valentineId: valentineId,\r\n otherValentineId: otherValentineId ?? 0,\r\n ageFrom,\r\n ageTo,\r\n sex,\r\n location,\r\n },\r\n }\r\n );\r\n return result.data;\r\n};","import axios from 'axios';\r\nimport { Message, getConfiguration } from '../models';\r\n\r\nexport const getMessages = async (): Promise => {\r\n const result = await axios(\r\n `${getConfiguration().serviceEndpoint}/zinutes/message/landing`\r\n );\r\n return result.data;\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { User } from '../models/User';\r\nimport { EmptyPhoto, Photo, QuestionGameCard } from '../components';\r\nimport { QuestionGame, QuestionGameVoteCallback, getConfiguration } from \"../models\";\r\n\r\nexport interface HeroProps {\r\n openInNewTab: boolean;\r\n users: User[];\r\n questionGame: QuestionGame;\r\n onQuestionGameVote: QuestionGameVoteCallback;\r\n onResetFilter: (() => void);\r\n loading: boolean;\r\n}\r\n\r\nexport const Hero = ({ users, loading, questionGame, onQuestionGameVote, onResetFilter, openInNewTab }: HeroProps) => {\r\n return
\r\n\r\n {questionGame.first.userId != null || users[7].userId == null\r\n ? \r\n : }\r\n\r\n {questionGame.second.userId != null || users[8].userId == null\r\n ? \r\n : }\r\n\r\n {users.slice(0, 7).map((user, index) => loading === true\r\n ? \r\n : )}\r\n
;\r\n};","import * as React from \"react\";\r\n\r\nexport interface RegisterBannerProps { }\r\n\r\nexport const RegisterBanner = (props: RegisterBannerProps) => {\r\n return \r\n

Registruokis ir gauk
VIP NARYSTĘ
nemokamai!

\r\n
Registruotis
\r\n
;\r\n}","import React, { FunctionComponent, useState, useEffect, useRef } from \"react\";\r\nimport * as PropTypes from 'prop-types';\r\n\r\nimport { IconMan, IconWoman } from '../utils/icons';\r\n\r\n//@ts-ignore\r\nimport ReactSlider from 'react-slider';\r\n\r\nimport { LocationInput } from './';\r\nimport { Search } from '../models';\r\n\r\nexport interface SearchProps {\r\n search: Search;\r\n ageMax: number;\r\n ageMin: number;\r\n onChange: ((search: Search) => void);\r\n}\r\n\r\nexport const SearchForm = ({ search, ageMax, ageMin, onChange }: SearchProps) => {\r\n const [state, setState] = useState(search);\r\n\r\n const firstRender = useRef(true);\r\n\r\n useEffect(() => {\r\n if (firstRender.current === true) {\r\n firstRender.current = false;\r\n return;\r\n }\r\n onChange(state);\r\n }, [state]);\r\n\r\n useEffect(() => {\r\n setState(search);\r\n }, [search]);\r\n\r\n return
\r\n
\r\n
Noriu susipažinti su:\r\n
\r\n setState({ ...state, genderMale: !state.genderMale })}> vaikinu\r\n setState({ ...state, genderFemale: !state.genderFemale })}> mergina\r\n
\r\n
\r\n\r\n
{state.ageFrom} - {state.ageTo} m.
\r\n
\r\n Dominantis amžius:\r\n setState({ ...state, ageFrom: val[0], ageTo: val[1] })}\r\n renderThumb={(props: any) =>
}\r\n />\r\n
\r\n\r\n
\r\n Vietovė:\r\n
\r\n { setState({ ...state, location: location }) }} />\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n Daugiau kriterijų\r\n \r\n
\r\n
\r\n
;\r\n}","var _jsxFileName = \"/Users/brians/git/react-slider/src/components/ReactSlider/ReactSlider.jsx\";\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\nimport React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * To prevent text selection while dragging.\n * http://stackoverflow.com/questions/5429827/how-can-i-prevent-text-element-selection-with-cursor-drag\n */\n\nfunction pauseEvent(e) {\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n\n return false;\n}\n\nfunction stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n}\n\nfunction sanitizeInValue(x) {\n if (x == null) {\n return [];\n }\n\n return Array.isArray(x) ? x.slice() : [x];\n}\n\nfunction prepareOutValue(x) {\n return x !== null && x.length === 1 ? x[0] : x.slice();\n}\n\nfunction trimSucceeding(length, nextValue, minDistance, max) {\n for (var i = 0; i < length; i += 1) {\n var padding = max - i * minDistance;\n\n if (nextValue[length - 1 - i] > padding) {\n // eslint-disable-next-line no-param-reassign\n nextValue[length - 1 - i] = padding;\n }\n }\n}\n\nfunction trimPreceding(length, nextValue, minDistance, min) {\n for (var i = 0; i < length; i += 1) {\n var padding = min + i * minDistance;\n\n if (nextValue[i] < padding) {\n // eslint-disable-next-line no-param-reassign\n nextValue[i] = padding;\n }\n }\n}\n\nfunction addHandlers(eventMap) {\n Object.keys(eventMap).forEach(function (key) {\n if (typeof document !== 'undefined') {\n document.addEventListener(key, eventMap[key], false);\n }\n });\n}\n\nfunction removeHandlers(eventMap) {\n Object.keys(eventMap).forEach(function (key) {\n if (typeof document !== 'undefined') {\n document.removeEventListener(key, eventMap[key], false);\n }\n });\n}\n\nvar ReactSlider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReactSlider, _React$Component);\n\n function ReactSlider(_props) {\n var _this;\n\n _this = _React$Component.call(this, _props) || this;\n\n _this.onKeyUp = function () {\n _this.onEnd();\n };\n\n _this.onMouseUp = function () {\n _this.onEnd(_this.getMouseEventMap());\n };\n\n _this.onTouchEnd = function () {\n _this.onEnd(_this.getTouchEventMap());\n };\n\n _this.onBlur = function () {\n _this.setState({\n index: -1\n }, _this.onEnd(_this.getKeyDownEventMap()));\n };\n\n _this.onMouseMove = function (e) {\n var position = _this.getMousePosition(e);\n\n var diffPosition = _this.getDiffPosition(position[0]);\n\n var newValue = _this.getValueFromPosition(diffPosition);\n\n _this.move(newValue);\n };\n\n _this.onTouchMove = function (e) {\n if (e.touches.length > 1) {\n return;\n }\n\n var position = _this.getTouchPosition(e);\n\n if (typeof _this.isScrolling === 'undefined') {\n var diffMainDir = position[0] - _this.startPosition[0];\n var diffScrollDir = position[1] - _this.startPosition[1];\n _this.isScrolling = Math.abs(diffScrollDir) > Math.abs(diffMainDir);\n }\n\n if (_this.isScrolling) {\n _this.setState({\n index: -1\n });\n\n return;\n }\n\n var diffPosition = _this.getDiffPosition(position[0]);\n\n var newValue = _this.getValueFromPosition(diffPosition);\n\n _this.move(newValue);\n };\n\n _this.onKeyDown = function (e) {\n if (e.ctrlKey || e.shiftKey || e.altKey) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n case 'Left':\n case 'Down':\n e.preventDefault();\n\n _this.moveDownByStep();\n\n break;\n\n case 'ArrowRight':\n case 'ArrowUp':\n case 'Right':\n case 'Up':\n e.preventDefault();\n\n _this.moveUpByStep();\n\n break;\n\n case 'Home':\n e.preventDefault();\n\n _this.move(_this.props.min);\n\n break;\n\n case 'End':\n e.preventDefault();\n\n _this.move(_this.props.max);\n\n break;\n\n case 'PageDown':\n e.preventDefault();\n\n _this.moveDownByStep(_this.props.pageFn(_this.props.step));\n\n break;\n\n case 'PageUp':\n e.preventDefault();\n\n _this.moveUpByStep(_this.props.pageFn(_this.props.step));\n\n break;\n\n default:\n }\n };\n\n _this.onSliderMouseDown = function (e) {\n // do nothing if disabled or right click\n if (_this.props.disabled || e.button === 2) {\n return;\n }\n\n if (!_this.props.snapDragDisabled) {\n var position = _this.getMousePosition(e);\n\n _this.forceValueFromPosition(position[0], function (i) {\n _this.start(i, position[0]);\n\n addHandlers(_this.getMouseEventMap());\n });\n }\n\n pauseEvent(e);\n };\n\n _this.onSliderClick = function (e) {\n if (_this.props.disabled) {\n return;\n }\n\n if (_this.props.onSliderClick && !_this.hasMoved) {\n var position = _this.getMousePosition(e);\n\n var valueAtPos = _this.trimAlignValue(_this.calcValue(_this.calcOffsetFromPosition(position[0])));\n\n _this.props.onSliderClick(valueAtPos);\n }\n };\n\n _this.createOnKeyDown = function (i) {\n return function (e) {\n if (_this.props.disabled) {\n return;\n }\n\n _this.start(i);\n\n addHandlers(_this.getKeyDownEventMap());\n pauseEvent(e);\n };\n };\n\n _this.createOnMouseDown = function (i) {\n return function (e) {\n // do nothing if disabled or right click\n if (_this.props.disabled || e.button === 2) {\n return;\n }\n\n var position = _this.getMousePosition(e);\n\n _this.start(i, position[0]);\n\n addHandlers(_this.getMouseEventMap());\n pauseEvent(e);\n };\n };\n\n _this.createOnTouchStart = function (i) {\n return function (e) {\n if (_this.props.disabled || e.touches.length > 1) {\n return;\n }\n\n var position = _this.getTouchPosition(e);\n\n _this.startPosition = position; // don't know yet if the user is trying to scroll\n\n _this.isScrolling = undefined;\n\n _this.start(i, position[0]);\n\n addHandlers(_this.getTouchEventMap());\n stopPropagation(e);\n };\n };\n\n _this.handleResize = function () {\n // setTimeout of 0 gives element enough time to have assumed its new size if\n // it is being resized\n var resizeTimeout = window.setTimeout(function () {\n // drop this timeout from pendingResizeTimeouts to reduce memory usage\n _this.pendingResizeTimeouts.shift();\n\n _this.resize();\n }, 0);\n\n _this.pendingResizeTimeouts.push(resizeTimeout);\n };\n\n _this.renderThumb = function (style, i) {\n var className = _this.props.thumbClassName + \" \" + _this.props.thumbClassName + \"-\" + i + \" \" + (_this.state.index === i ? _this.props.thumbActiveClassName : '');\n var props = {\n 'ref': function ref(r) {\n _this[\"thumb\" + i] = r;\n },\n 'key': _this.props.thumbClassName + \"-\" + i,\n className: className,\n style: style,\n 'onMouseDown': _this.createOnMouseDown(i),\n 'onTouchStart': _this.createOnTouchStart(i),\n 'onFocus': _this.createOnKeyDown(i),\n 'tabIndex': 0,\n 'role': 'slider',\n 'aria-orientation': _this.props.orientation,\n 'aria-valuenow': _this.state.value[i],\n 'aria-valuemin': _this.props.min,\n 'aria-valuemax': _this.props.max,\n 'aria-label': Array.isArray(_this.props.ariaLabel) ? _this.props.ariaLabel[i] : _this.props.ariaLabel\n };\n var state = {\n index: i,\n value: prepareOutValue(_this.state.value),\n valueNow: _this.state.value[i]\n };\n\n if (_this.props.ariaValuetext) {\n props['aria-valuetext'] = typeof _this.props.ariaValuetext === 'string' ? _this.props.ariaValuetext : _this.props.ariaValuetext(state);\n }\n\n return _this.props.renderThumb(props, state);\n };\n\n _this.renderTrack = function (i, offsetFrom, offsetTo) {\n var props = {\n key: _this.props.trackClassName + \"-\" + i,\n className: _this.props.trackClassName + \" \" + _this.props.trackClassName + \"-\" + i,\n style: _this.buildTrackStyle(offsetFrom, _this.state.upperBound - offsetTo)\n };\n var state = {\n index: i,\n value: prepareOutValue(_this.state.value)\n };\n return _this.props.renderTrack(props, state);\n };\n\n var value = sanitizeInValue(_props.value);\n\n if (!value.length) {\n value = sanitizeInValue(_props.defaultValue);\n } // reused throughout the component to store results of iterations over `value`\n\n\n _this.tempArray = value.slice(); // array for storing resize timeouts ids\n\n _this.pendingResizeTimeouts = [];\n var zIndices = [];\n\n for (var i = 0; i < value.length; i += 1) {\n value[i] = _this.trimAlignValue(value[i], _props);\n zIndices.push(i);\n }\n\n _this.state = {\n index: -1,\n upperBound: 0,\n sliderLength: 0,\n value: value,\n zIndices: zIndices\n };\n return _this;\n }\n\n var _proto = ReactSlider.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', this.handleResize);\n this.resize();\n }\n } // Keep the internal `value` consistent with an outside `value` if present.\n // This basically allows the slider to be a controlled component.\n ;\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(newProps) {\n var value = sanitizeInValue(newProps.value);\n\n if (!value.length) {\n // eslint-disable-next-line prefer-destructuring\n value = this.state.value;\n } // ensure the array keeps the same size as `value`\n\n\n this.tempArray = value.slice();\n\n for (var i = 0; i < value.length; i += 1) {\n this.state.value[i] = this.trimAlignValue(value[i], newProps);\n }\n\n if (this.state.value.length > value.length) {\n this.state.value.length = value.length;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // If an upperBound has not yet been determined (due to the component being hidden\n // during the mount event, or during the last resize), then calculate it now\n if (this.state.upperBound === 0) {\n this.resize();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearPendingResizeTimeouts();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleResize);\n }\n };\n\n _proto.onEnd = function onEnd(eventMap) {\n if (eventMap) {\n removeHandlers(eventMap);\n }\n\n if (this.hasMoved) {\n this.fireChangeEvent('onAfterChange');\n }\n\n this.hasMoved = false;\n };\n\n _proto.getValue = function getValue() {\n return prepareOutValue(this.state.value);\n };\n\n _proto.getClosestIndex = function getClosestIndex(pixelOffset) {\n var minDist = Number.MAX_VALUE;\n var closestIndex = -1;\n var value = this.state.value;\n var l = value.length;\n\n for (var i = 0; i < l; i += 1) {\n var offset = this.calcOffset(value[i]);\n var dist = Math.abs(pixelOffset - offset);\n\n if (dist < minDist) {\n minDist = dist;\n closestIndex = i;\n }\n }\n\n return closestIndex;\n };\n\n _proto.getMousePosition = function getMousePosition(e) {\n return [e[\"page\" + this.axisKey()], e[\"page\" + this.orthogonalAxisKey()]];\n };\n\n _proto.getTouchPosition = function getTouchPosition(e) {\n var touch = e.touches[0];\n return [touch[\"page\" + this.axisKey()], touch[\"page\" + this.orthogonalAxisKey()]];\n };\n\n _proto.getKeyDownEventMap = function getKeyDownEventMap() {\n return {\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n focusout: this.onBlur\n };\n };\n\n _proto.getMouseEventMap = function getMouseEventMap() {\n return {\n mousemove: this.onMouseMove,\n mouseup: this.onMouseUp\n };\n };\n\n _proto.getTouchEventMap = function getTouchEventMap() {\n return {\n touchmove: this.onTouchMove,\n touchend: this.onTouchEnd\n };\n };\n\n _proto.getValueFromPosition = function getValueFromPosition(position) {\n var diffValue = position / (this.state.sliderLength - this.state.thumbSize) * (this.props.max - this.props.min);\n return this.trimAlignValue(this.state.startValue + diffValue);\n };\n\n _proto.getDiffPosition = function getDiffPosition(position) {\n var diffPosition = position - this.state.startPosition;\n\n if (this.props.invert) {\n diffPosition *= -1;\n }\n\n return diffPosition;\n } // create the `keydown` handler for the i-th thumb\n ;\n\n _proto.resize = function resize() {\n var slider = this.slider,\n thumb = this.thumb0;\n\n if (!slider || !thumb) {\n return;\n }\n\n var sizeKey = this.sizeKey(); // For the slider size, we want to use the client width/height, excluding any borders\n\n var sliderRect = slider.getBoundingClientRect();\n var sliderSize = slider[sizeKey];\n var sliderMax = sliderRect[this.posMaxKey()];\n var sliderMin = sliderRect[this.posMinKey()]; // For the thumb size, we want to use the outer width/height, including any borders\n\n var thumbRect = thumb.getBoundingClientRect();\n var thumbSize = thumbRect[sizeKey.replace('client', '').toLowerCase()];\n var upperBound = sliderSize - thumbSize;\n var sliderLength = Math.abs(sliderMax - sliderMin);\n\n if (this.state.upperBound !== upperBound || this.state.sliderLength !== sliderLength || this.state.thumbSize !== thumbSize) {\n this.setState({\n upperBound: upperBound,\n sliderLength: sliderLength,\n thumbSize: thumbSize\n });\n }\n } // calculates the offset of a thumb in pixels based on its value.\n ;\n\n _proto.calcOffset = function calcOffset(value) {\n var range = this.props.max - this.props.min;\n\n if (range === 0) {\n return 0;\n }\n\n var ratio = (value - this.props.min) / range;\n return ratio * this.state.upperBound;\n } // calculates the value corresponding to a given pixel offset, i.e. the inverse of `calcOffset`.\n ;\n\n _proto.calcValue = function calcValue(offset) {\n var ratio = offset / this.state.upperBound;\n return ratio * (this.props.max - this.props.min) + this.props.min;\n };\n\n _proto.calcOffsetFromPosition = function calcOffsetFromPosition(position) {\n var slider = this.slider;\n var sliderRect = slider.getBoundingClientRect();\n var sliderMax = sliderRect[this.posMaxKey()];\n var sliderMin = sliderRect[this.posMinKey()]; // The `position` value passed in is the mouse position based on the window height.\n // The slider bounding rect is based on the viewport, so we must add the window scroll\n // offset to normalize the values.\n\n var windowOffset = window[\"page\" + this.axisKey() + \"Offset\"];\n var sliderStart = windowOffset + (this.props.invert ? sliderMax : sliderMin);\n var pixelOffset = position - sliderStart;\n\n if (this.props.invert) {\n pixelOffset = this.state.sliderLength - pixelOffset;\n }\n\n pixelOffset -= this.state.thumbSize / 2;\n return pixelOffset;\n } // Snaps the nearest thumb to the value corresponding to `position`\n // and calls `callback` with that thumb's index.\n ;\n\n _proto.forceValueFromPosition = function forceValueFromPosition(position, callback) {\n var _this2 = this;\n\n var pixelOffset = this.calcOffsetFromPosition(position);\n var closestIndex = this.getClosestIndex(pixelOffset);\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset)); // Clone this.state.value since we'll modify it temporarily\n // eslint-disable-next-line zillow/react/no-access-state-in-setstate\n\n var value = this.state.value.slice();\n value[closestIndex] = nextValue; // Prevents the slider from shrinking below `props.minDistance`\n\n for (var i = 0; i < value.length - 1; i += 1) {\n if (value[i + 1] - value[i] < this.props.minDistance) {\n return;\n }\n }\n\n this.fireChangeEvent('onBeforeChange');\n this.hasMoved = true;\n this.setState({\n value: value\n }, function () {\n callback(closestIndex);\n\n _this2.fireChangeEvent('onChange');\n });\n } // clear all pending timeouts to avoid error messages after unmounting\n ;\n\n _proto.clearPendingResizeTimeouts = function clearPendingResizeTimeouts() {\n do {\n var nextTimeout = this.pendingResizeTimeouts.shift();\n clearTimeout(nextTimeout);\n } while (this.pendingResizeTimeouts.length);\n };\n\n _proto.start = function start(i, position) {\n var thumbRef = this[\"thumb\" + i];\n\n if (thumbRef) {\n thumbRef.focus();\n }\n\n var zIndices = this.state.zIndices; // remove wherever the element is\n\n zIndices.splice(zIndices.indexOf(i), 1); // add to end\n\n zIndices.push(i);\n this.setState(function (prevState) {\n return {\n startValue: prevState.value[i],\n startPosition: position !== undefined ? position : prevState.startPosition,\n index: i,\n zIndices: zIndices\n };\n });\n };\n\n _proto.moveUpByStep = function moveUpByStep(step) {\n if (step === void 0) {\n step = this.props.step;\n }\n\n var oldValue = this.state.value[this.state.index];\n var newValue = this.trimAlignValue(oldValue + step);\n this.move(Math.min(newValue, this.props.max));\n };\n\n _proto.moveDownByStep = function moveDownByStep(step) {\n if (step === void 0) {\n step = this.props.step;\n }\n\n var oldValue = this.state.value[this.state.index];\n var newValue = this.trimAlignValue(oldValue - step);\n this.move(Math.max(newValue, this.props.min));\n };\n\n _proto.move = function move(newValue) {\n var _this$state = this.state,\n index = _this$state.index,\n value = _this$state.value;\n var length = value.length; // Short circuit if the value is not changing\n\n var oldValue = value[index];\n\n if (newValue === oldValue) {\n return;\n } // Trigger only before the first movement\n\n\n if (!this.hasMoved) {\n this.fireChangeEvent('onBeforeChange');\n }\n\n this.hasMoved = true; // if \"pearling\" (= thumbs pushing each other) is disabled,\n // prevent the thumb from getting closer than `minDistance` to the previous or next thumb.\n\n var _this$props = this.props,\n pearling = _this$props.pearling,\n max = _this$props.max,\n min = _this$props.min,\n minDistance = _this$props.minDistance;\n\n if (!pearling) {\n if (index > 0) {\n var valueBefore = value[index - 1];\n\n if (newValue < valueBefore + minDistance) {\n // eslint-disable-next-line no-param-reassign\n newValue = valueBefore + minDistance;\n }\n }\n\n if (index < length - 1) {\n var valueAfter = value[index + 1];\n\n if (newValue > valueAfter - minDistance) {\n // eslint-disable-next-line no-param-reassign\n newValue = valueAfter - minDistance;\n }\n }\n }\n\n value[index] = newValue; // if \"pearling\" is enabled, let the current thumb push the pre- and succeeding thumbs.\n\n if (pearling && length > 1) {\n if (newValue > oldValue) {\n this.pushSucceeding(value, minDistance, index);\n trimSucceeding(length, value, minDistance, max);\n } else if (newValue < oldValue) {\n this.pushPreceding(value, minDistance, index);\n trimPreceding(length, value, minDistance, min);\n }\n } // Normally you would use `shouldComponentUpdate`,\n // but since the slider is a low-level component,\n // the extra complexity might be worth the extra performance.\n\n\n this.setState({\n value: value\n }, this.fireChangeEvent.bind(this, 'onChange'));\n };\n\n _proto.pushSucceeding = function pushSucceeding(value, minDistance, index) {\n var i;\n var padding;\n\n for (i = index, padding = value[i] + minDistance; value[i + 1] !== null && padding > value[i + 1]; i += 1, padding = value[i] + minDistance) {\n // eslint-disable-next-line no-param-reassign\n value[i + 1] = this.alignValue(padding);\n }\n };\n\n _proto.pushPreceding = function pushPreceding(value, minDistance, index) {\n for (var i = index, padding = value[i] - minDistance; value[i - 1] !== null && padding < value[i - 1]; i -= 1, padding = value[i] - minDistance) {\n // eslint-disable-next-line no-param-reassign\n value[i - 1] = this.alignValue(padding);\n }\n };\n\n _proto.axisKey = function axisKey() {\n if (this.props.orientation === 'vertical') {\n return 'Y';\n } // Defaults to 'horizontal';\n\n\n return 'X';\n };\n\n _proto.orthogonalAxisKey = function orthogonalAxisKey() {\n if (this.props.orientation === 'vertical') {\n return 'X';\n } // Defaults to 'horizontal'\n\n\n return 'Y';\n };\n\n _proto.posMinKey = function posMinKey() {\n if (this.props.orientation === 'vertical') {\n return this.props.invert ? 'bottom' : 'top';\n } // Defaults to 'horizontal'\n\n\n return this.props.invert ? 'right' : 'left';\n };\n\n _proto.posMaxKey = function posMaxKey() {\n if (this.props.orientation === 'vertical') {\n return this.props.invert ? 'top' : 'bottom';\n } // Defaults to 'horizontal'\n\n\n return this.props.invert ? 'left' : 'right';\n };\n\n _proto.sizeKey = function sizeKey() {\n if (this.props.orientation === 'vertical') {\n return 'clientHeight';\n } // Defaults to 'horizontal'\n\n\n return 'clientWidth';\n };\n\n _proto.trimAlignValue = function trimAlignValue(val, props) {\n return this.alignValue(this.trimValue(val, props), props);\n };\n\n _proto.trimValue = function trimValue(val, props) {\n if (props === void 0) {\n props = this.props;\n }\n\n var trimmed = val;\n\n if (trimmed <= props.min) {\n trimmed = props.min;\n }\n\n if (trimmed >= props.max) {\n trimmed = props.max;\n }\n\n return trimmed;\n };\n\n _proto.alignValue = function alignValue(val, props) {\n if (props === void 0) {\n props = this.props;\n }\n\n var valModStep = (val - props.min) % props.step;\n var alignValue = val - valModStep;\n\n if (Math.abs(valModStep) * 2 >= props.step) {\n alignValue += valModStep > 0 ? props.step : -props.step;\n }\n\n return parseFloat(alignValue.toFixed(5));\n };\n\n _proto.fireChangeEvent = function fireChangeEvent(event) {\n if (this.props[event]) {\n this.props[event](prepareOutValue(this.state.value));\n }\n };\n\n _proto.buildThumbStyle = function buildThumbStyle(offset, i) {\n var style = {\n position: 'absolute',\n touchAction: 'none',\n willChange: this.state.index >= 0 ? this.posMinKey() : '',\n zIndex: this.state.zIndices.indexOf(i) + 1\n };\n style[this.posMinKey()] = offset + \"px\";\n return style;\n };\n\n _proto.buildTrackStyle = function buildTrackStyle(min, max) {\n var obj = {\n position: 'absolute',\n willChange: this.state.index >= 0 ? this.posMinKey() + \",\" + this.posMaxKey() : ''\n };\n obj[this.posMinKey()] = min;\n obj[this.posMaxKey()] = max;\n return obj;\n };\n\n _proto.renderThumbs = function renderThumbs(offset) {\n var length = offset.length;\n var styles = this.tempArray;\n\n for (var i = 0; i < length; i += 1) {\n styles[i] = this.buildThumbStyle(offset[i], i);\n }\n\n var res = [];\n\n for (var _i = 0; _i < length; _i += 1) {\n res[_i] = this.renderThumb(styles[_i], _i);\n }\n\n return res;\n };\n\n _proto.renderTracks = function renderTracks(offset) {\n var tracks = [];\n var lastIndex = offset.length - 1;\n tracks.push(this.renderTrack(0, 0, offset[0]));\n\n for (var i = 0; i < lastIndex; i += 1) {\n tracks.push(this.renderTrack(i + 1, offset[i], offset[i + 1]));\n }\n\n tracks.push(this.renderTrack(lastIndex + 1, offset[lastIndex], this.state.upperBound));\n return tracks;\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var offset = this.tempArray;\n var value = this.state.value;\n var l = value.length;\n\n for (var i = 0; i < l; i += 1) {\n offset[i] = this.calcOffset(value[i], i);\n }\n\n var tracks = this.props.withTracks ? this.renderTracks(offset) : null;\n var thumbs = this.renderThumbs(offset);\n return /*#__PURE__*/React.createElement('div', {\n ref: function ref(r) {\n _this3.slider = r;\n },\n style: {\n position: 'relative'\n },\n className: this.props.className + (this.props.disabled ? ' disabled' : ''),\n onMouseDown: this.onSliderMouseDown,\n onClick: this.onSliderClick\n }, tracks, thumbs);\n };\n\n return ReactSlider;\n}(React.Component);\n\nReactSlider.displayName = 'ReactSlider';\nReactSlider.defaultProps = {\n min: 0,\n max: 100,\n step: 1,\n pageFn: function pageFn(step) {\n return step * 10;\n },\n minDistance: 0,\n defaultValue: 0,\n orientation: 'horizontal',\n className: 'slider',\n thumbClassName: 'thumb',\n thumbActiveClassName: 'active',\n trackClassName: 'track',\n withTracks: true,\n pearling: false,\n disabled: false,\n snapDragDisabled: false,\n invert: false,\n renderThumb: function renderThumb(props) {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n __self: ReactSlider,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 31\n }\n }));\n },\n renderTrack: function renderTrack(props) {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n __self: ReactSlider,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 31\n }\n }));\n }\n};\nReactSlider.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * The minimum value of the slider.\n */\n min: PropTypes.number,\n\n /**\n * The maximum value of the slider.\n */\n max: PropTypes.number,\n\n /**\n * Value to be added or subtracted on each step the slider makes.\n * Must be greater than zero.\n * `max - min` should be evenly divisible by the step value.\n */\n step: PropTypes.number,\n\n /**\n * The result of the function is the value to be added or subtracted\n * when the `Page Up` or `Page Down` keys are pressed.\n *\n * The current `step` value will be passed as the only argument.\n * By default, paging will modify `step` by a factor of 10.\n */\n pageFn: PropTypes.func,\n\n /**\n * The minimal distance between any pair of thumbs.\n * Must be positive, but zero means they can sit on top of each other.\n */\n minDistance: PropTypes.number,\n\n /**\n * Determines the initial positions of the thumbs and the number of thumbs.\n *\n * If a number is passed a slider with one thumb will be rendered.\n * If an array is passed each value will determine the position of one thumb.\n * The values in the array must be sorted.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n /**\n * Like `defaultValue` but for\n * [controlled components](http://facebook.github.io/react/docs/forms.html#controlled-components).\n */\n // eslint-disable-next-line zillow/react/require-default-props\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n /**\n * Determines whether the slider moves horizontally (from left to right)\n * or vertically (from top to bottom).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The css class set on the slider node.\n */\n className: PropTypes.string,\n\n /**\n * The css class set on each thumb node.\n *\n * In addition each thumb will receive a numbered css class of the form\n * `${thumbClassName}-${i}`, e.g. `thumb-0`, `thumb-1`, ...\n */\n thumbClassName: PropTypes.string,\n\n /**\n * The css class set on the thumb that is currently being moved.\n */\n thumbActiveClassName: PropTypes.string,\n\n /**\n * If `true` tracks between the thumbs will be rendered.\n */\n withTracks: PropTypes.bool,\n\n /**\n * The css class set on the tracks between the thumbs.\n * In addition track fragment will receive a numbered css class of the form\n * `${trackClassName}-${i}`, e.g. `track-0`, `track-1`, ...\n */\n trackClassName: PropTypes.string,\n\n /**\n * If `true` the active thumb will push other thumbs\n * within the constraints of `min`, `max`, `step` and `minDistance`.\n */\n pearling: PropTypes.bool,\n\n /**\n * If `true` the thumbs can't be moved.\n */\n disabled: PropTypes.bool,\n\n /**\n * Disables thumb move when clicking the slider track\n */\n snapDragDisabled: PropTypes.bool,\n\n /**\n * Inverts the slider.\n */\n invert: PropTypes.bool,\n\n /**\n * Callback called before starting to move a thumb. The callback will only be called if the\n * action will result in a change. The function will be called with one argument,\n * the initial value(s).\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onBeforeChange: PropTypes.func,\n\n /**\n * Callback called on every value change.\n * The function will be called with one argument, the new value(s).\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onChange: PropTypes.func,\n\n /**\n * Callback called only after moving a thumb has ended. The callback will only be called if\n * the action resulted in a change. The function will be called with one argument,\n * the result value(s).\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onAfterChange: PropTypes.func,\n\n /**\n * Callback called when the the slider is clicked (thumb or tracks).\n * Receives the value at the clicked position as argument.\n */\n // eslint-disable-next-line zillow/react/require-default-props\n onSliderClick: PropTypes.func,\n\n /**\n * aria-label for screen-readers to apply to the thumbs.\n * Use an array for more than one thumb.\n * The length of the array must match the number of thumbs in the value array.\n */\n // eslint-disable-next-line zillow/react/require-default-props\n ariaLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * aria-valuetext for screen-readers.\n * Can be a static string, or a function that returns a string.\n * The function will be passed a single argument,\n * an object with the following properties:\n *\n * state => `Value: ${state.value}`\n *\n * - `state.index` {`number`} the index of the thumb\n * - `state.value` {`number` | `array`} the current value state\n * - `state.valueNow` {`number`} the value of the thumb (i.e. aria-valuenow)\n */\n // eslint-disable-next-line zillow/react/require-default-props\n ariaValuetext: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Provide a custom render function for the track node.\n * The render function will be passed two arguments,\n * an object with props that should be added to your handle node,\n * and an object with track and slider state:\n *\n * (props, state) =>
\n *\n * - `props` {`object`} props to be spread into your track node\n * - `state.index` {`number`} the index of the track\n * - `state.value` {`number` | `array`} the current value state\n */\n renderTrack: PropTypes.func,\n\n /**\n * Provide a custom render function for dynamic thumb content.\n * The render function will be passed two arguments,\n * an object with props that should be added to your thumb node,\n * and an object with thumb and slider state:\n *\n * (props, state) =>
\n *\n * - `props` {`object`} props to be spread into your thumb node\n * - `state.index` {`number`} the index of the thumb\n * - `state.value` {`number` | `array`} the current value state\n * - `state.valueNow` {`number`} the value of the thumb (i.e. aria-valuenow)\n */\n // eslint-disable-next-line zillow/react/require-default-props\n renderThumb: PropTypes.func\n} : {};\nexport default ReactSlider;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React from 'react';\r\nimport { User, getConfiguration } from '../models';\r\nimport { EmptyPhoto, Photo } from './';\r\n\r\ninterface UsersCardProps {\r\n openInNewTab: boolean;\r\n title: string;\r\n titleUrl: string;\r\n users: User[];\r\n loading: boolean;\r\n}\r\n\r\nexport const UsersCard = ({ title, titleUrl, users, loading, openInNewTab }: UsersCardProps) => {\r\n return
\r\n

{title}

\r\n
\r\n {users != null ? users.map((user, index) => loading === true\r\n ? \r\n : ) : null}\r\n
\r\n
\r\n};","import React from 'react';\r\n\r\nexport const Footer = () => {\r\n return
\r\n \r\n
;\r\n}","import React from 'react';\r\n\r\ninterface EmptyPhotoProps {\r\n className?: string;\r\n}\r\n\r\nexport const EmptyPhoto = ({ className }: EmptyPhotoProps) => {\r\n return \r\n
\r\n
;\r\n}","import React from 'react';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { User } from '../models';\r\nimport { IconConfusedFace } from '../utils';\r\nimport {\r\n CSSTransition,\r\n TransitionGroup,\r\n SwitchTransition,\r\n} from 'react-transition-group';\r\n\r\ninterface PhotoProps {\r\n openInNewTab: boolean;\r\n photo: string;\r\n link?: string;\r\n className?: string;\r\n tooltip?: string;\r\n}\r\n\r\ninterface PhotoState {\r\n photo: string;\r\n}\r\n\r\nexport class Photo extends React.Component {\r\n\r\n state: PhotoState = {\r\n photo: null,\r\n };\r\n\r\n constructor(props: PhotoProps) {\r\n super(props)\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.photo == null) {\r\n return;\r\n }\r\n this.setState({ photo: this.props.photo });\r\n }\r\n\r\n componentDidUpdate(prevProps: PhotoProps, prevState: PhotoState) {\r\n if (this.props.photo != null && prevProps.photo != this.props.photo) {\r\n this.setState({ photo: this.props.photo });\r\n }\r\n }\r\n\r\n render() {\r\n const { children, className, photo, link, tooltip, openInNewTab } = this.props;\r\n\r\n if (photo === null) {\r\n return \r\n \r\n ;\r\n }\r\n\r\n return <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n ;\r\n }\r\n}","export const debounce = any>(\r\n func: F,\r\n waitFor: number,\r\n) => {\r\n let timeout: number = 0\r\n\r\n const debounced = (...args: any) => {\r\n clearTimeout(timeout)\r\n timeout = setTimeout(() => func(...args), waitFor)\r\n }\r\n\r\n return debounced as (...args: Parameters) => ReturnType\r\n}","import React from 'react';\r\nimport { GalleryPhoto, getConfiguration } from '../models';\r\nimport { EmptyPhoto, Photo } from './';\r\n\r\ninterface GalleryCardProps {\r\n openInNewTab: boolean;\r\n title: string;\r\n titleUrl: string;\r\n photos: GalleryPhoto[];\r\n loading: boolean;\r\n}\r\n\r\nexport const GalleryCard = ({ title, titleUrl, photos, loading, openInNewTab }: GalleryCardProps) => {\r\n return
\r\n

{title}

\r\n
\r\n {photos.map((photo, index) => loading === true\r\n ? \r\n : )}\r\n
\r\n
;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Autosuggest from 'react-autosuggest';\r\nimport { performLocationSearch } from '../services';\r\nimport { Location } from '../models';\r\n\r\ninterface LocationInputProps {\r\n defaultValue: Location;\r\n onSelected: ((location: Location) => void);\r\n}\r\n\r\nexport const LocationInput = ({ defaultValue, onSelected }: LocationInputProps) => {\r\n const [value, setValue] = useState('');\r\n const [suggestions, setSuggestions] = useState([]);\r\n\r\n useEffect(() => {\r\n setValue(defaultValue.display);\r\n }, [defaultValue]);\r\n\r\n return
true}\r\n onSuggestionsClearRequested={() => setSuggestions([])}\r\n onSuggestionsFetchRequested={async ({ value }) => {\r\n const locations = await performLocationSearch(value);\r\n setValue(value);\r\n setSuggestions(locations);\r\n }}\r\n onSuggestionSelected={(event, { suggestion }) => { onSelected(suggestion); }}\r\n getSuggestionValue={suggestion => suggestion.display}\r\n renderSuggestion={suggestion => {suggestion.name}}\r\n inputProps={{\r\n placeholder: 'Įvesk vietovę',\r\n value: value,\r\n onChange: (_, { newValue, method }) => {\r\n setValue(newValue);\r\n }\r\n }}\r\n highlightFirstSuggestion={true}\r\n />
;\r\n};","\"use strict\";\n\nmodule.exports = require('./Autosuggest')[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _arrays = _interopRequireDefault(require(\"shallow-equal/arrays\"));\n\nvar _Autowhatever = _interopRequireDefault(require(\"./Autowhatever\"));\n\nvar _theme = require(\"./theme\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\n\nvar defaultShouldRenderSuggestions = function defaultShouldRenderSuggestions(value) {\n return value.trim().length > 0;\n};\n\nvar defaultRenderSuggestionsContainer = function defaultRenderSuggestionsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar Autosuggest = /*#__PURE__*/function (_Component) {\n _inherits(Autosuggest, _Component);\n\n var _super = _createSuper(Autosuggest);\n\n function Autosuggest(_ref2) {\n var _this;\n\n var _alwaysRenderSuggestions = _ref2.alwaysRenderSuggestions;\n\n _classCallCheck(this, Autosuggest);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseDown\", function (event) {\n _this.justClickedOnSuggestionsContainer = false;\n var node = event.detail && event.detail.target || // This is for testing only. Please show me a better way to emulate this.\n event.target;\n\n while (node !== null && node !== document) {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n // Suggestion was clicked\n return;\n }\n\n if (node === _this.suggestionsContainer) {\n // Something else inside suggestions container was clicked\n _this.justClickedOnSuggestionsContainer = true;\n return;\n }\n\n node = node.parentNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeAutowhateverRef\", function (autowhatever) {\n if (autowhatever !== null) {\n _this.autowhatever = autowhatever;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseEnter\", function (event, _ref3) {\n var sectionIndex = _ref3.sectionIndex,\n itemIndex = _ref3.itemIndex;\n\n _this.updateHighlightedSuggestion(sectionIndex, itemIndex);\n\n if (event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = true;\n }\n\n _this.justMouseEntered = true;\n setTimeout(function () {\n _this.justMouseEntered = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"highlightFirstSuggestion\", function () {\n _this.updateHighlightedSuggestion(_this.props.multiSection ? 0 : null, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseUp\", function () {\n if (_this.pressedSuggestion && !_this.justSelectedSuggestion) {\n _this.input.focus();\n }\n\n _this.pressedSuggestion = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseDown\", function (event) {\n // Checking if this.justSelectedSuggestion is already true to not duplicate touch events in chrome\n // See: https://github.com/facebook/react/issues/9809#issuecomment-413978405\n if (!_this.justSelectedSuggestion) {\n _this.justSelectedSuggestion = true;\n _this.pressedSuggestion = event.target;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionsClearRequested\", function () {\n var onSuggestionsClearRequested = _this.props.onSuggestionsClearRequested;\n onSuggestionsClearRequested && onSuggestionsClearRequested();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionSelected\", function (event, data) {\n var _this$props = _this.props,\n alwaysRenderSuggestions = _this$props.alwaysRenderSuggestions,\n onSuggestionSelected = _this$props.onSuggestionSelected,\n onSuggestionsFetchRequested = _this$props.onSuggestionsFetchRequested;\n onSuggestionSelected && onSuggestionSelected(event, data);\n\n if (alwaysRenderSuggestions) {\n onSuggestionsFetchRequested({\n value: data.suggestionValue,\n reason: 'suggestion-selected'\n });\n } else {\n _this.onSuggestionsClearRequested();\n }\n\n _this.resetHighlightedSuggestion();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionClick\", function (event) {\n var _this$props2 = _this.props,\n alwaysRenderSuggestions = _this$props2.alwaysRenderSuggestions,\n focusInputOnSuggestionClick = _this$props2.focusInputOnSuggestionClick;\n\n var _this$getSuggestionIn = _this.getSuggestionIndices(_this.findSuggestionElement(event.target)),\n sectionIndex = _this$getSuggestionIn.sectionIndex,\n suggestionIndex = _this$getSuggestionIn.suggestionIndex;\n\n var clickedSuggestion = _this.getSuggestion(sectionIndex, suggestionIndex);\n\n var clickedSuggestionValue = _this.props.getSuggestionValue(clickedSuggestion);\n\n _this.maybeCallOnChange(event, clickedSuggestionValue, 'click');\n\n _this.onSuggestionSelected(event, {\n suggestion: clickedSuggestion,\n suggestionValue: clickedSuggestionValue,\n suggestionIndex: suggestionIndex,\n sectionIndex: sectionIndex,\n method: 'click'\n });\n\n if (!alwaysRenderSuggestions) {\n _this.closeSuggestions();\n }\n\n if (focusInputOnSuggestionClick === true) {\n _this.input.focus();\n } else {\n _this.onBlur();\n }\n\n setTimeout(function () {\n _this.justSelectedSuggestion = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var _this$props3 = _this.props,\n inputProps = _this$props3.inputProps,\n shouldRenderSuggestions = _this$props3.shouldRenderSuggestions;\n var value = inputProps.value,\n onBlur = inputProps.onBlur;\n\n var highlightedSuggestion = _this.getHighlightedSuggestion();\n\n var shouldRender = shouldRenderSuggestions(value);\n\n _this.setState({\n isFocused: false,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n });\n\n onBlur && onBlur(_this.blurEvent, {\n highlightedSuggestion: highlightedSuggestion\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseLeave\", function (event) {\n _this.resetHighlightedSuggestion(false); // shouldResetValueBeforeUpDown\n\n\n if (_this.justSelectedSuggestion && event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = false;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchStart\", function () {\n _this.justSelectedSuggestion = true; // todo: event.preventDefault when https://github.com/facebook/react/issues/2043\n // todo: gets released so onSuggestionMouseDown won't fire in chrome\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchMove\", function () {\n _this.justSelectedSuggestion = false;\n _this.pressedSuggestion = null;\n\n _this.input.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"itemProps\", function (_ref4) {\n var sectionIndex = _ref4.sectionIndex,\n itemIndex = _ref4.itemIndex;\n return {\n 'data-section-index': sectionIndex,\n 'data-suggestion-index': itemIndex,\n onMouseEnter: _this.onSuggestionMouseEnter,\n onMouseLeave: _this.onSuggestionMouseLeave,\n onMouseDown: _this.onSuggestionMouseDown,\n onTouchStart: _this.onSuggestionTouchStart,\n onTouchMove: _this.onSuggestionTouchMove,\n onClick: _this.onSuggestionClick\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsContainer\", function (_ref5) {\n var containerProps = _ref5.containerProps,\n children = _ref5.children;\n var renderSuggestionsContainer = _this.props.renderSuggestionsContainer;\n return renderSuggestionsContainer({\n containerProps: containerProps,\n children: children,\n query: _this.getQuery()\n });\n });\n\n _this.state = {\n isFocused: false,\n isCollapsed: !_alwaysRenderSuggestions,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null\n };\n _this.justPressedUpDown = false;\n _this.justMouseEntered = false;\n _this.pressedSuggestion = null;\n return _this;\n }\n\n _createClass(Autosuggest, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n this.input = this.autowhatever.input;\n this.suggestionsContainer = this.autowhatever.itemsContainer;\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if ((0, _arrays[\"default\"])(nextProps.suggestions, this.props.suggestions)) {\n if (nextProps.highlightFirstSuggestion && nextProps.suggestions.length > 0 && this.justPressedUpDown === false && this.justMouseEntered === false) {\n this.highlightFirstSuggestion();\n }\n } else {\n if (this.willRenderSuggestions(nextProps)) {\n if (this.state.isCollapsed && !this.justSelectedSuggestion) {\n this.revealSuggestions();\n }\n } else {\n this.resetHighlightedSuggestion();\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props4 = this.props,\n suggestions = _this$props4.suggestions,\n onSuggestionHighlighted = _this$props4.onSuggestionHighlighted,\n highlightFirstSuggestion = _this$props4.highlightFirstSuggestion;\n\n if (!(0, _arrays[\"default\"])(suggestions, prevProps.suggestions) && suggestions.length > 0 && highlightFirstSuggestion) {\n this.highlightFirstSuggestion();\n return;\n }\n\n if (onSuggestionHighlighted) {\n var highlightedSuggestion = this.getHighlightedSuggestion();\n var prevHighlightedSuggestion = prevState.highlightedSuggestion;\n\n if (highlightedSuggestion != prevHighlightedSuggestion) {\n onSuggestionHighlighted({\n suggestion: highlightedSuggestion\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n }\n }, {\n key: \"updateHighlightedSuggestion\",\n value: function updateHighlightedSuggestion(sectionIndex, suggestionIndex, prevValue) {\n var _this2 = this;\n\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n\n if (suggestionIndex === null) {\n valueBeforeUpDown = null;\n } else if (valueBeforeUpDown === null && typeof prevValue !== 'undefined') {\n valueBeforeUpDown = prevValue;\n }\n\n return {\n highlightedSectionIndex: sectionIndex,\n highlightedSuggestionIndex: suggestionIndex,\n highlightedSuggestion: suggestionIndex === null ? null : _this2.getSuggestion(sectionIndex, suggestionIndex),\n valueBeforeUpDown: valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"resetHighlightedSuggestion\",\n value: function resetHighlightedSuggestion() {\n var shouldResetValueBeforeUpDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n return {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: shouldResetValueBeforeUpDown ? null : valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"revealSuggestions\",\n value: function revealSuggestions() {\n this.setState({\n isCollapsed: false\n });\n }\n }, {\n key: \"closeSuggestions\",\n value: function closeSuggestions() {\n this.setState({\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: true\n });\n }\n }, {\n key: \"getSuggestion\",\n value: function getSuggestion(sectionIndex, suggestionIndex) {\n var _this$props5 = this.props,\n suggestions = _this$props5.suggestions,\n multiSection = _this$props5.multiSection,\n getSectionSuggestions = _this$props5.getSectionSuggestions;\n\n if (multiSection) {\n return getSectionSuggestions(suggestions[sectionIndex])[suggestionIndex];\n }\n\n return suggestions[suggestionIndex];\n }\n }, {\n key: \"getHighlightedSuggestion\",\n value: function getHighlightedSuggestion() {\n var _this$state = this.state,\n highlightedSectionIndex = _this$state.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state.highlightedSuggestionIndex;\n\n if (highlightedSuggestionIndex === null) {\n return null;\n }\n\n return this.getSuggestion(highlightedSectionIndex, highlightedSuggestionIndex);\n }\n }, {\n key: \"getSuggestionValueByIndex\",\n value: function getSuggestionValueByIndex(sectionIndex, suggestionIndex) {\n var getSuggestionValue = this.props.getSuggestionValue;\n return getSuggestionValue(this.getSuggestion(sectionIndex, suggestionIndex));\n }\n }, {\n key: \"getSuggestionIndices\",\n value: function getSuggestionIndices(suggestionElement) {\n var sectionIndex = suggestionElement.getAttribute('data-section-index');\n var suggestionIndex = suggestionElement.getAttribute('data-suggestion-index');\n return {\n sectionIndex: typeof sectionIndex === 'string' ? parseInt(sectionIndex, 10) : null,\n suggestionIndex: parseInt(suggestionIndex, 10)\n };\n }\n }, {\n key: \"findSuggestionElement\",\n value: function findSuggestionElement(startNode) {\n var node = startNode;\n\n do {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n return node;\n }\n\n node = node.parentNode;\n } while (node !== null);\n\n console.error('Clicked element:', startNode); // eslint-disable-line no-console\n\n throw new Error(\"Couldn't find suggestion element\");\n }\n }, {\n key: \"maybeCallOnChange\",\n value: function maybeCallOnChange(event, newValue, method) {\n var _this$props$inputProp = this.props.inputProps,\n value = _this$props$inputProp.value,\n onChange = _this$props$inputProp.onChange;\n\n if (newValue !== value) {\n onChange(event, {\n newValue: newValue,\n method: method\n });\n }\n }\n }, {\n key: \"willRenderSuggestions\",\n value: function willRenderSuggestions(props) {\n var suggestions = props.suggestions,\n inputProps = props.inputProps,\n shouldRenderSuggestions = props.shouldRenderSuggestions;\n var value = inputProps.value;\n return suggestions.length > 0 && shouldRenderSuggestions(value);\n }\n }, {\n key: \"getQuery\",\n value: function getQuery() {\n var inputProps = this.props.inputProps;\n var value = inputProps.value;\n var valueBeforeUpDown = this.state.valueBeforeUpDown;\n return (valueBeforeUpDown === null ? value : valueBeforeUpDown).trim();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n suggestions = _this$props6.suggestions,\n renderInputComponent = _this$props6.renderInputComponent,\n onSuggestionsFetchRequested = _this$props6.onSuggestionsFetchRequested,\n renderSuggestion = _this$props6.renderSuggestion,\n inputProps = _this$props6.inputProps,\n multiSection = _this$props6.multiSection,\n renderSectionTitle = _this$props6.renderSectionTitle,\n id = _this$props6.id,\n getSectionSuggestions = _this$props6.getSectionSuggestions,\n theme = _this$props6.theme,\n getSuggestionValue = _this$props6.getSuggestionValue,\n alwaysRenderSuggestions = _this$props6.alwaysRenderSuggestions,\n highlightFirstSuggestion = _this$props6.highlightFirstSuggestion;\n var _this$state2 = this.state,\n isFocused = _this$state2.isFocused,\n isCollapsed = _this$state2.isCollapsed,\n highlightedSectionIndex = _this$state2.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state2.highlightedSuggestionIndex,\n valueBeforeUpDown = _this$state2.valueBeforeUpDown;\n var shouldRenderSuggestions = alwaysRenderSuggestions ? alwaysTrue : this.props.shouldRenderSuggestions;\n var value = inputProps.value,\n _onFocus = inputProps.onFocus,\n _onKeyDown = inputProps.onKeyDown;\n var willRenderSuggestions = this.willRenderSuggestions(this.props);\n var isOpen = alwaysRenderSuggestions || isFocused && !isCollapsed && willRenderSuggestions;\n var items = isOpen ? suggestions : [];\n\n var autowhateverInputProps = _objectSpread({}, inputProps, {\n onFocus: function onFocus(event) {\n if (!_this3.justSelectedSuggestion && !_this3.justClickedOnSuggestionsContainer) {\n var shouldRender = shouldRenderSuggestions(value);\n\n _this3.setState({\n isFocused: true,\n isCollapsed: !shouldRender\n });\n\n _onFocus && _onFocus(event);\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'input-focused'\n });\n }\n }\n },\n onBlur: function onBlur(event) {\n if (_this3.justClickedOnSuggestionsContainer) {\n _this3.input.focus();\n\n return;\n }\n\n _this3.blurEvent = event;\n\n if (!_this3.justSelectedSuggestion) {\n _this3.onBlur();\n\n _this3.onSuggestionsClearRequested();\n }\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var shouldRender = shouldRenderSuggestions(value);\n\n _this3.maybeCallOnChange(event, value, 'type');\n\n if (_this3.suggestionsContainer) {\n _this3.suggestionsContainer.scrollTop = 0;\n }\n\n _this3.setState(_objectSpread({}, highlightFirstSuggestion ? {} : {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null\n }, {\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n }));\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'input-changed'\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n },\n onKeyDown: function onKeyDown(event, data) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n // ArrowUp\n if (isCollapsed) {\n if (shouldRenderSuggestions(value)) {\n onSuggestionsFetchRequested({\n value: value,\n reason: 'suggestions-revealed'\n });\n\n _this3.revealSuggestions();\n }\n } else if (suggestions.length > 0) {\n var newHighlightedSectionIndex = data.newHighlightedSectionIndex,\n newHighlightedItemIndex = data.newHighlightedItemIndex;\n var newValue;\n\n if (newHighlightedItemIndex === null) {\n // valueBeforeUpDown can be null if, for example, user\n // hovers on the first suggestion and then pressed Up.\n // If that happens, use the original input value.\n newValue = valueBeforeUpDown === null ? value : valueBeforeUpDown;\n } else {\n newValue = _this3.getSuggestionValueByIndex(newHighlightedSectionIndex, newHighlightedItemIndex);\n }\n\n _this3.updateHighlightedSuggestion(newHighlightedSectionIndex, newHighlightedItemIndex, value);\n\n _this3.maybeCallOnChange(event, newValue, keyCode === 40 ? 'down' : 'up');\n }\n\n event.preventDefault(); // Prevents the cursor from moving\n\n _this3.justPressedUpDown = true;\n setTimeout(function () {\n _this3.justPressedUpDown = false;\n });\n break;\n // Enter\n\n case 13:\n {\n // See #388\n if (event.keyCode === 229) {\n break;\n }\n\n var highlightedSuggestion = _this3.getHighlightedSuggestion();\n\n if (isOpen && !alwaysRenderSuggestions) {\n _this3.closeSuggestions();\n }\n\n if (highlightedSuggestion != null) {\n var _newValue = getSuggestionValue(highlightedSuggestion);\n\n _this3.maybeCallOnChange(event, _newValue, 'enter');\n\n _this3.onSuggestionSelected(event, {\n suggestion: highlightedSuggestion,\n suggestionValue: _newValue,\n suggestionIndex: highlightedSuggestionIndex,\n sectionIndex: highlightedSectionIndex,\n method: 'enter'\n });\n\n _this3.justSelectedSuggestion = true;\n setTimeout(function () {\n _this3.justSelectedSuggestion = false;\n });\n }\n\n break;\n }\n // Escape\n\n case 27:\n {\n if (isOpen) {\n // If input.type === 'search', the browser clears the input\n // when Escape is pressed. We want to disable this default\n // behaviour so that, when suggestions are shown, we just hide\n // them, without clearing the input.\n event.preventDefault();\n }\n\n var willCloseSuggestions = isOpen && !alwaysRenderSuggestions;\n\n if (valueBeforeUpDown === null) {\n // Didn't interact with Up/Down\n if (!willCloseSuggestions) {\n var _newValue2 = '';\n\n _this3.maybeCallOnChange(event, _newValue2, 'escape');\n\n if (shouldRenderSuggestions(_newValue2)) {\n onSuggestionsFetchRequested({\n value: _newValue2,\n reason: 'escape-pressed'\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n }\n } else {\n // Interacted with Up/Down\n _this3.maybeCallOnChange(event, valueBeforeUpDown, 'escape');\n }\n\n if (willCloseSuggestions) {\n _this3.onSuggestionsClearRequested();\n\n _this3.closeSuggestions();\n } else {\n _this3.resetHighlightedSuggestion();\n }\n\n break;\n }\n }\n\n _onKeyDown && _onKeyDown(event);\n }\n });\n\n var renderSuggestionData = {\n query: this.getQuery()\n };\n return /*#__PURE__*/_react[\"default\"].createElement(_Autowhatever[\"default\"], {\n multiSection: multiSection,\n items: items,\n renderInputComponent: renderInputComponent,\n renderItemsContainer: this.renderSuggestionsContainer,\n renderItem: renderSuggestion,\n renderItemData: renderSuggestionData,\n renderSectionTitle: renderSectionTitle,\n getSectionItems: getSectionSuggestions,\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedSuggestionIndex,\n inputProps: autowhateverInputProps,\n itemProps: this.itemProps,\n theme: (0, _theme.mapToAutowhateverTheme)(theme),\n id: id,\n ref: this.storeAutowhateverRef\n });\n }\n }]);\n\n return Autosuggest;\n}(_react.Component);\n\nexports[\"default\"] = Autosuggest;\n\n_defineProperty(Autosuggest, \"propTypes\", {\n suggestions: _propTypes[\"default\"].array.isRequired,\n onSuggestionsFetchRequested: function onSuggestionsFetchRequested(props, propName) {\n var onSuggestionsFetchRequested = props[propName];\n\n if (typeof onSuggestionsFetchRequested !== 'function') {\n throw new Error(\"'onSuggestionsFetchRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp\");\n }\n },\n onSuggestionsClearRequested: function onSuggestionsClearRequested(props, propName) {\n var onSuggestionsClearRequested = props[propName];\n\n if (props.alwaysRenderSuggestions === false && typeof onSuggestionsClearRequested !== 'function') {\n throw new Error(\"'onSuggestionsClearRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp\");\n }\n },\n onSuggestionSelected: _propTypes[\"default\"].func,\n onSuggestionHighlighted: _propTypes[\"default\"].func,\n renderInputComponent: _propTypes[\"default\"].func,\n renderSuggestionsContainer: _propTypes[\"default\"].func,\n getSuggestionValue: _propTypes[\"default\"].func.isRequired,\n renderSuggestion: _propTypes[\"default\"].func.isRequired,\n inputProps: function inputProps(props, propName) {\n var inputProps = props[propName];\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'value')) {\n throw new Error(\"'inputProps' must have 'value'.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'onChange')) {\n throw new Error(\"'inputProps' must have 'onChange'.\");\n }\n },\n shouldRenderSuggestions: _propTypes[\"default\"].func,\n alwaysRenderSuggestions: _propTypes[\"default\"].bool,\n multiSection: _propTypes[\"default\"].bool,\n renderSectionTitle: function renderSectionTitle(props, propName) {\n var renderSectionTitle = props[propName];\n\n if (props.multiSection === true && typeof renderSectionTitle !== 'function') {\n throw new Error(\"'renderSectionTitle' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp\");\n }\n },\n getSectionSuggestions: function getSectionSuggestions(props, propName) {\n var getSectionSuggestions = props[propName];\n\n if (props.multiSection === true && typeof getSectionSuggestions !== 'function') {\n throw new Error(\"'getSectionSuggestions' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp\");\n }\n },\n focusInputOnSuggestionClick: _propTypes[\"default\"].bool,\n highlightFirstSuggestion: _propTypes[\"default\"].bool,\n theme: _propTypes[\"default\"].object,\n id: _propTypes[\"default\"].string\n});\n\n_defineProperty(Autosuggest, \"defaultProps\", {\n renderSuggestionsContainer: defaultRenderSuggestionsContainer,\n shouldRenderSuggestions: defaultShouldRenderSuggestions,\n alwaysRenderSuggestions: false,\n multiSection: false,\n focusInputOnSuggestionClick: true,\n highlightFirstSuggestion: false,\n theme: _theme.defaultTheme,\n id: '1'\n});","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sectionIterator = _interopRequireDefault(require(\"section-iterator\"));\n\nvar _reactThemeable = _interopRequireDefault(require(\"react-themeable\"));\n\nvar _SectionTitle = _interopRequireDefault(require(\"./SectionTitle\"));\n\nvar _ItemList = _interopRequireDefault(require(\"./ItemList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar emptyObject = {};\n\nvar defaultRenderInputComponent = function defaultRenderInputComponent(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"input\", props);\n};\n\nvar defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar defaultTheme = {\n container: 'react-autowhatever__container',\n containerOpen: 'react-autowhatever__container--open',\n input: 'react-autowhatever__input',\n inputOpen: 'react-autowhatever__input--open',\n inputFocused: 'react-autowhatever__input--focused',\n itemsContainer: 'react-autowhatever__items-container',\n itemsContainerOpen: 'react-autowhatever__items-container--open',\n itemsList: 'react-autowhatever__items-list',\n item: 'react-autowhatever__item',\n itemFirst: 'react-autowhatever__item--first',\n itemHighlighted: 'react-autowhatever__item--highlighted',\n sectionContainer: 'react-autowhatever__section-container',\n sectionContainerFirst: 'react-autowhatever__section-container--first',\n sectionTitle: 'react-autowhatever__section-title'\n};\n\nvar Autowhatever = /*#__PURE__*/function (_Component) {\n _inherits(Autowhatever, _Component);\n\n var _super = _createSuper(Autowhatever);\n\n function Autowhatever(props) {\n var _this;\n\n _classCallCheck(this, Autowhatever);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"storeInputReference\", function (input) {\n if (input !== null) {\n _this.input = input;\n }\n\n var userRef = _this.props.inputProps.ref;\n\n if (userRef) {\n if (typeof userRef === 'function') {\n userRef(input);\n } else if (_typeof(userRef) === 'object' && Object.prototype.hasOwnProperty.call(userRef, 'current')) {\n userRef.current = input;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemsContainerReference\", function (itemsContainer) {\n if (itemsContainer !== null) {\n _this.itemsContainer = itemsContainer;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onHighlightedItemChange\", function (highlightedItem) {\n _this.highlightedItem = highlightedItem;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemId\", function (sectionIndex, itemIndex) {\n if (itemIndex === null) {\n return null;\n }\n\n var id = _this.props.id;\n var section = sectionIndex === null ? '' : \"section-\".concat(sectionIndex);\n return \"react-autowhatever-\".concat(id, \"-\").concat(section, \"-item-\").concat(itemIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: true\n });\n\n inputProps.onFocus && inputProps.onFocus(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: false\n });\n\n inputProps.onBlur && inputProps.onBlur(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$props = _this.props,\n inputProps = _this$props.inputProps,\n highlightedSectionIndex = _this$props.highlightedSectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n {\n var nextPrev = event.key === 'ArrowDown' ? 'next' : 'prev';\n\n var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]),\n _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2),\n newHighlightedSectionIndex = _this$sectionIterator2[0],\n newHighlightedItemIndex = _this$sectionIterator2[1];\n\n inputProps.onKeyDown(event, {\n newHighlightedSectionIndex: newHighlightedSectionIndex,\n newHighlightedItemIndex: newHighlightedItemIndex\n });\n break;\n }\n\n default:\n inputProps.onKeyDown(event, {\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedItemIndex\n });\n }\n });\n\n _this.highlightedItem = null;\n _this.state = {\n isInputFocused: false\n };\n\n _this.setSectionsItems(props);\n\n _this.setSectionIterator(props);\n\n _this.setTheme(props);\n\n return _this;\n }\n\n _createClass(Autowhatever, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ensureHighlightedItemIsVisible();\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.items !== this.props.items) {\n this.setSectionsItems(nextProps);\n }\n\n if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) {\n this.setSectionIterator(nextProps);\n }\n\n if (nextProps.theme !== this.props.theme) {\n this.setTheme(nextProps);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ensureHighlightedItemIsVisible();\n }\n }, {\n key: \"setSectionsItems\",\n value: function setSectionsItems(props) {\n if (props.multiSection) {\n this.sectionsItems = props.items.map(function (section) {\n return props.getSectionItems(section);\n });\n this.sectionsLengths = this.sectionsItems.map(function (items) {\n return items.length;\n });\n this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) {\n return itemsCount === 0;\n });\n }\n }\n }, {\n key: \"setSectionIterator\",\n value: function setSectionIterator(props) {\n this.sectionIterator = (0, _sectionIterator[\"default\"])({\n multiSection: props.multiSection,\n data: props.multiSection ? this.sectionsLengths : props.items.length\n });\n }\n }, {\n key: \"setTheme\",\n value: function setTheme(props) {\n this.theme = (0, _reactThemeable[\"default\"])(props.theme);\n }\n }, {\n key: \"renderSections\",\n value: function renderSections() {\n var _this2 = this;\n\n if (this.allSectionsAreEmpty) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props2 = this.props,\n id = _this$props2.id,\n items = _this$props2.items,\n renderItem = _this$props2.renderItem,\n renderItemData = _this$props2.renderItemData,\n renderSectionTitle = _this$props2.renderSectionTitle,\n highlightedSectionIndex = _this$props2.highlightedSectionIndex,\n highlightedItemIndex = _this$props2.highlightedItemIndex,\n itemProps = _this$props2.itemProps;\n return items.map(function (section, sectionIndex) {\n var keyPrefix = \"react-autowhatever-\".concat(id, \"-\");\n var sectionKeyPrefix = \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isFirstSection = sectionIndex === 0; // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"container\"), 'sectionContainer', isFirstSection && 'sectionContainerFirst'), /*#__PURE__*/_react[\"default\"].createElement(_SectionTitle[\"default\"], {\n section: section,\n renderSectionTitle: renderSectionTitle,\n theme: theme,\n sectionKeyPrefix: sectionKeyPrefix\n }), /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: _this2.sectionsItems[sectionIndex],\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n sectionIndex: sectionIndex,\n highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null,\n onHighlightedItemChange: _this2.onHighlightedItemChange,\n getItemId: _this2.getItemId,\n theme: theme,\n keyPrefix: keyPrefix,\n ref: _this2.storeItemsListReference\n }));\n /* eslint-enable react/jsx-key */\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props3 = this.props,\n id = _this$props3.id,\n renderItem = _this$props3.renderItem,\n renderItemData = _this$props3.renderItemData,\n highlightedSectionIndex = _this$props3.highlightedSectionIndex,\n highlightedItemIndex = _this$props3.highlightedItemIndex,\n itemProps = _this$props3.itemProps;\n return /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: items,\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null,\n onHighlightedItemChange: this.onHighlightedItemChange,\n getItemId: this.getItemId,\n theme: theme,\n keyPrefix: \"react-autowhatever-\".concat(id, \"-\")\n });\n }\n }, {\n key: \"ensureHighlightedItemIsVisible\",\n value: function ensureHighlightedItemIsVisible() {\n var highlightedItem = this.highlightedItem;\n\n if (!highlightedItem) {\n return;\n }\n\n var itemsContainer = this.itemsContainer;\n var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop;\n var scrollTop = itemsContainer.scrollTop; // Top of the visible area\n\n if (itemOffsetRelativeToContainer < scrollTop) {\n // Item is off the top of the visible area\n scrollTop = itemOffsetRelativeToContainer;\n } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) {\n // Item is off the bottom of the visible area\n scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight;\n }\n\n if (scrollTop !== itemsContainer.scrollTop) {\n itemsContainer.scrollTop = scrollTop;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var theme = this.theme;\n var _this$props4 = this.props,\n id = _this$props4.id,\n multiSection = _this$props4.multiSection,\n renderInputComponent = _this$props4.renderInputComponent,\n renderItemsContainer = _this$props4.renderItemsContainer,\n highlightedSectionIndex = _this$props4.highlightedSectionIndex,\n highlightedItemIndex = _this$props4.highlightedItemIndex;\n var isInputFocused = this.state.isInputFocused;\n var renderedItems = multiSection ? this.renderSections() : this.renderItems();\n var isOpen = renderedItems !== null;\n var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex);\n var itemsContainerId = \"react-autowhatever-\".concat(id);\n\n var containerProps = _objectSpread({\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': itemsContainerId,\n 'aria-expanded': isOpen\n }, theme(\"react-autowhatever-\".concat(id, \"-container\"), 'container', isOpen && 'containerOpen'), {}, this.props.containerProps);\n\n var inputComponent = renderInputComponent(_objectSpread({\n type: 'text',\n value: '',\n autoComplete: 'off',\n 'aria-autocomplete': 'list',\n 'aria-controls': itemsContainerId,\n 'aria-activedescendant': ariaActivedescendant\n }, theme(\"react-autowhatever-\".concat(id, \"-input\"), 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), {}, this.props.inputProps, {\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown,\n ref: this.storeInputReference\n }));\n var itemsContainer = renderItemsContainer({\n containerProps: _objectSpread({\n id: itemsContainerId,\n role: 'listbox'\n }, theme(\"react-autowhatever-\".concat(id, \"-items-container\"), 'itemsContainer', isOpen && 'itemsContainerOpen'), {\n ref: this.storeItemsContainerReference\n }),\n children: renderedItems\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, inputComponent, itemsContainer);\n }\n }]);\n\n return Autowhatever;\n}(_react.Component);\n\nexports[\"default\"] = Autowhatever;\n\n_defineProperty(Autowhatever, \"propTypes\", {\n id: _propTypes[\"default\"].string,\n // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids.\n multiSection: _propTypes[\"default\"].bool,\n // Indicates whether a multi section layout should be rendered.\n renderInputComponent: _propTypes[\"default\"].func,\n // When specified, it is used to render the input element.\n renderItemsContainer: _propTypes[\"default\"].func,\n // Renders the items container.\n items: _propTypes[\"default\"].array.isRequired,\n // Array of items or sections to render.\n renderItem: _propTypes[\"default\"].func,\n // This function renders a single item.\n renderItemData: _propTypes[\"default\"].object,\n // Arbitrary data that will be passed to renderItem()\n renderSectionTitle: _propTypes[\"default\"].func,\n // This function gets a section and renders its title.\n getSectionItems: _propTypes[\"default\"].func,\n // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.\n containerProps: _propTypes[\"default\"].object,\n // Arbitrary container props\n inputProps: _propTypes[\"default\"].object,\n // Arbitrary input props\n itemProps: _propTypes[\"default\"].oneOfType([// Arbitrary item props\n _propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n highlightedSectionIndex: _propTypes[\"default\"].number,\n // Section index of the highlighted item\n highlightedItemIndex: _propTypes[\"default\"].number,\n // Highlighted item index (within a section)\n theme: _propTypes[\"default\"].oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable\n _propTypes[\"default\"].object, _propTypes[\"default\"].array])\n});\n\n_defineProperty(Autowhatever, \"defaultProps\", {\n id: '1',\n multiSection: false,\n renderInputComponent: defaultRenderInputComponent,\n renderItemsContainer: defaultRenderItemsContainer,\n renderItem: function renderItem() {\n throw new Error('`renderItem` must be provided');\n },\n renderItemData: emptyObject,\n renderSectionTitle: function renderSectionTitle() {\n throw new Error('`renderSectionTitle` must be provided');\n },\n getSectionItems: function getSectionItems() {\n throw new Error('`getSectionItems` must be provided');\n },\n containerProps: emptyObject,\n inputProps: emptyObject,\n itemProps: emptyObject,\n highlightedSectionIndex: null,\n highlightedItemIndex: null,\n theme: defaultTheme\n});","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nmodule.exports = function (_ref) {\n var data = _ref.data;\n var multiSection = _ref.multiSection;\n\n function nextNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = 0;\n } else {\n sectionIndex++;\n }\n\n while (sectionIndex < data.length && data[sectionIndex] === 0) {\n sectionIndex++;\n }\n\n return sectionIndex === data.length ? null : sectionIndex;\n }\n\n function prevNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = data.length - 1;\n } else {\n sectionIndex--;\n }\n\n while (sectionIndex >= 0 && data[sectionIndex] === 0) {\n sectionIndex--;\n }\n\n return sectionIndex === -1 ? null : sectionIndex;\n }\n\n function next(position) {\n var _position = _slicedToArray(position, 2);\n\n var sectionIndex = _position[0];\n var itemIndex = _position[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === data[sectionIndex] - 1) {\n sectionIndex = nextNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, 0];\n }\n\n return [sectionIndex, itemIndex + 1];\n }\n\n if (data === 0 || itemIndex === data - 1) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, 0];\n }\n\n return [null, itemIndex + 1];\n }\n\n function prev(position) {\n var _position2 = _slicedToArray(position, 2);\n\n var sectionIndex = _position2[0];\n var itemIndex = _position2[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === 0) {\n sectionIndex = prevNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, data[sectionIndex] - 1];\n }\n\n return [sectionIndex, itemIndex - 1];\n }\n\n if (data === 0 || itemIndex === 0) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, data - 1];\n }\n\n return [null, itemIndex - 1];\n }\n\n function isLast(position) {\n return next(position)[1] === null;\n }\n\n return {\n next: next,\n prev: prev,\n isLast: isLast\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar truthy = function truthy(x) {\n return x;\n};\n\nexports['default'] = function (input) {\n var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null];\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var theme = _ref2[0];\n var classNameDecorator = _ref2[1];\n\n return function (key) {\n for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n names[_key - 1] = arguments[_key];\n }\n\n var styles = names.map(function (name) {\n return theme[name];\n }).filter(truthy);\n\n return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) };\n };\n};\n\nmodule.exports = exports['default'];","'use strict';\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction ownEnumerableKeys(obj) {\n\tvar keys = Object.getOwnPropertyNames(obj);\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tkeys = keys.concat(Object.getOwnPropertySymbols(obj));\n\t}\n\n\treturn keys.filter(function (key) {\n\t\treturn propIsEnumerable.call(obj, key);\n\t});\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = ownEnumerableKeys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SectionTitle = /*#__PURE__*/function (_Component) {\n _inherits(SectionTitle, _Component);\n\n var _super = _createSuper(SectionTitle);\n\n function SectionTitle() {\n _classCallCheck(this, SectionTitle);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SectionTitle, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n section = _this$props.section,\n renderSectionTitle = _this$props.renderSectionTitle,\n theme = _this$props.theme,\n sectionKeyPrefix = _this$props.sectionKeyPrefix;\n var sectionTitle = renderSectionTitle(section);\n\n if (!sectionTitle) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"title\"), 'sectionTitle'), sectionTitle);\n }\n }]);\n\n return SectionTitle;\n}(_react.Component);\n\nexports[\"default\"] = SectionTitle;\n\n_defineProperty(SectionTitle, \"propTypes\", {\n section: _propTypes[\"default\"].any.isRequired,\n renderSectionTitle: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n sectionKeyPrefix: _propTypes[\"default\"].string.isRequired\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ItemsList = /*#__PURE__*/function (_Component) {\n _inherits(ItemsList, _Component);\n\n var _super = _createSuper(ItemsList);\n\n function ItemsList() {\n var _this;\n\n _classCallCheck(this, ItemsList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeHighlightedItemReference\", function (highlightedItem) {\n _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item);\n });\n\n return _this;\n }\n\n _createClass(ItemsList, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['itemProps']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n itemProps = _this$props.itemProps,\n renderItem = _this$props.renderItem,\n renderItemData = _this$props.renderItemData,\n sectionIndex = _this$props.sectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex,\n getItemId = _this$props.getItemId,\n theme = _this$props.theme,\n keyPrefix = _this$props.keyPrefix;\n var sectionPrefix = sectionIndex === null ? keyPrefix : \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isItemPropsFunction = typeof itemProps === 'function';\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", _extends({\n role: \"listbox\"\n }, theme(\"\".concat(sectionPrefix, \"items-list\"), 'itemsList')), items.map(function (item, itemIndex) {\n var isFirst = itemIndex === 0;\n var isHighlighted = itemIndex === highlightedItemIndex;\n var itemKey = \"\".concat(sectionPrefix, \"item-\").concat(itemIndex);\n var itemPropsObj = isItemPropsFunction ? itemProps({\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n }) : itemProps;\n\n var allItemProps = _objectSpread({\n id: getItemId(sectionIndex, itemIndex),\n 'aria-selected': isHighlighted\n }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), {}, itemPropsObj);\n\n if (isHighlighted) {\n allItemProps.ref = _this2.storeHighlightedItemReference;\n } // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n\n return /*#__PURE__*/_react[\"default\"].createElement(_Item[\"default\"], _extends({}, allItemProps, {\n sectionIndex: sectionIndex,\n isHighlighted: isHighlighted,\n itemIndex: itemIndex,\n item: item,\n renderItem: renderItem,\n renderItemData: renderItemData\n }));\n /* eslint-enable react/jsx-key */\n }));\n }\n }]);\n\n return ItemsList;\n}(_react.Component);\n\nexports[\"default\"] = ItemsList;\n\n_defineProperty(ItemsList, \"propTypes\", {\n items: _propTypes[\"default\"].array.isRequired,\n itemProps: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n sectionIndex: _propTypes[\"default\"].number,\n highlightedItemIndex: _propTypes[\"default\"].number,\n onHighlightedItemChange: _propTypes[\"default\"].func.isRequired,\n getItemId: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n keyPrefix: _propTypes[\"default\"].string.isRequired\n});\n\n_defineProperty(ItemsList, \"defaultProps\", {\n sectionIndex: null\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Item = /*#__PURE__*/function (_Component) {\n _inherits(Item, _Component);\n\n var _super = _createSuper(Item);\n\n function Item() {\n var _this;\n\n _classCallCheck(this, Item);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemReference\", function (item) {\n if (item !== null) {\n _this.item = item;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (event) {\n var _this$props = _this.props,\n sectionIndex = _this$props.sectionIndex,\n itemIndex = _this$props.itemIndex;\n\n _this.props.onMouseEnter(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (event) {\n var _this$props2 = _this.props,\n sectionIndex = _this$props2.sectionIndex,\n itemIndex = _this$props2.itemIndex;\n\n _this.props.onMouseLeave(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var _this$props3 = _this.props,\n sectionIndex = _this$props3.sectionIndex,\n itemIndex = _this$props3.itemIndex;\n\n _this.props.onMouseDown(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props4 = _this.props,\n sectionIndex = _this$props4.sectionIndex,\n itemIndex = _this$props4.itemIndex;\n\n _this.props.onClick(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n return _this;\n }\n\n _createClass(Item, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['renderItemData']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n isHighlighted = _this$props5.isHighlighted,\n item = _this$props5.item,\n renderItem = _this$props5.renderItem,\n renderItemData = _this$props5.renderItemData,\n restProps = _objectWithoutProperties(_this$props5, [\"isHighlighted\", \"item\", \"renderItem\", \"renderItemData\"]);\n\n delete restProps.sectionIndex;\n delete restProps.itemIndex;\n\n if (typeof restProps.onMouseEnter === 'function') {\n restProps.onMouseEnter = this.onMouseEnter;\n }\n\n if (typeof restProps.onMouseLeave === 'function') {\n restProps.onMouseLeave = this.onMouseLeave;\n }\n\n if (typeof restProps.onMouseDown === 'function') {\n restProps.onMouseDown = this.onMouseDown;\n }\n\n if (typeof restProps.onClick === 'function') {\n restProps.onClick = this.onClick;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", _extends({\n role: \"option\"\n }, restProps, {\n ref: this.storeItemReference\n }), renderItem(item, _objectSpread({\n isHighlighted: isHighlighted\n }, renderItemData)));\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nexports[\"default\"] = Item;\n\n_defineProperty(Item, \"propTypes\", {\n sectionIndex: _propTypes[\"default\"].number,\n isHighlighted: _propTypes[\"default\"].bool.isRequired,\n itemIndex: _propTypes[\"default\"].number.isRequired,\n item: _propTypes[\"default\"].any.isRequired,\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n onMouseEnter: _propTypes[\"default\"].func,\n onMouseLeave: _propTypes[\"default\"].func,\n onMouseDown: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mapToAutowhateverTheme = exports.defaultTheme = void 0;\nvar defaultTheme = {\n container: 'react-autosuggest__container',\n containerOpen: 'react-autosuggest__container--open',\n input: 'react-autosuggest__input',\n inputOpen: 'react-autosuggest__input--open',\n inputFocused: 'react-autosuggest__input--focused',\n suggestionsContainer: 'react-autosuggest__suggestions-container',\n suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',\n suggestionsList: 'react-autosuggest__suggestions-list',\n suggestion: 'react-autosuggest__suggestion',\n suggestionFirst: 'react-autosuggest__suggestion--first',\n suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',\n sectionContainer: 'react-autosuggest__section-container',\n sectionContainerFirst: 'react-autosuggest__section-container--first',\n sectionTitle: 'react-autosuggest__section-title'\n};\nexports.defaultTheme = defaultTheme;\n\nvar mapToAutowhateverTheme = function mapToAutowhateverTheme(theme) {\n var result = {};\n\n for (var key in theme) {\n switch (key) {\n case 'suggestionsContainer':\n result['itemsContainer'] = theme[key];\n break;\n\n case 'suggestionsContainerOpen':\n result['itemsContainerOpen'] = theme[key];\n break;\n\n case 'suggestion':\n result['item'] = theme[key];\n break;\n\n case 'suggestionFirst':\n result['itemFirst'] = theme[key];\n break;\n\n case 'suggestionHighlighted':\n result['itemHighlighted'] = theme[key];\n break;\n\n case 'suggestionsList':\n result['itemsList'] = theme[key];\n break;\n\n default:\n result[key] = theme[key];\n }\n }\n\n return result;\n};\n\nexports.mapToAutowhateverTheme = mapToAutowhateverTheme;","import React, { useState, useEffect, useRef } from 'react';\r\nimport { QuestionGameVoteType, QuestionGameVoteCallback, QuestionGameUser, getConfiguration } from '../models';\r\nimport { EmptyPhoto, Photo } from '../components';\r\nimport { IconVoteDown, IconVoteUp, IconConfusedFace } from '../utils';\r\n\r\ninterface QuestionGameProps {\r\n openInNewTab: boolean;\r\n className: string;\r\n pageLoading: boolean;\r\n user: QuestionGameUser;\r\n onQuestionGameVote: QuestionGameVoteCallback;\r\n onResetFilter: (() => void);\r\n}\r\n\r\nexport const QuestionGameCard = ({ user, className, pageLoading, onQuestionGameVote, onResetFilter, openInNewTab }: QuestionGameProps) => {\r\n if (pageLoading || user.loading) {\r\n return \r\n }\r\n\r\n if (user.photo === null) {\r\n return \r\n \r\n Daugiau narių pagal pasirinktus kriterijus nėra\r\n \r\n ;\r\n }\r\n\r\n return \r\n {\r\n onQuestionGameVote(user.userId, QuestionGameVoteType.no)\r\n event.preventDefault();\r\n }} />\r\n {\r\n onQuestionGameVote(user.userId, QuestionGameVoteType.yes)\r\n event.preventDefault();\r\n }} />\r\n ;\r\n};","import * as React from \"react\";\r\nimport { Message } from \"../models\";\r\nimport { IconConfusedFace, IconChatBox } from \"../utils\";\r\n\r\nexport interface MessagesProps {\r\n messages: Message[];\r\n}\r\n\r\nexport const Messages = ({ messages }: MessagesProps) => {\r\n\r\n if (messages === null || typeof messages === 'undefined') {\r\n return
\r\n
\r\n
;\r\n }\r\n\r\n if (messages.length === 0) {\r\n return
\r\n \r\n Šiuo metu žinučių nėra.\r\n
;\r\n }\r\n\r\n return ;\r\n}\r\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n ;\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\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.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","export default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import { Children, cloneElement, isValidElement } from 'react';\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 */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) 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\nexport function 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\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return 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}\nexport function 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 (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = 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] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = 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}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\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/**\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\nvar TransitionGroup = /*#__PURE__*/function (_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(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\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 ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = 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 contextValue = this.state.contextValue;\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 /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\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.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.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.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.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.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.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _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}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport TransitionGroup from './TransitionGroup';\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 */\n\nvar ReplaceTransition = /*#__PURE__*/function (_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 var child = React.Children.toArray(children)[idx];\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n\n if (this.props[handler]) {\n var maybeNode = child.props.nodeRef ? undefined : ReactDOM.findDOMNode(this);\n this.props[handler](maybeNode);\n }\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.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 /*#__PURE__*/React.createElement(TransitionGroup, props, inProp ? React.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : React.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.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: PropTypes.bool.isRequired,\n children: function children(props, propName) {\n if (React.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nexport default ReplaceTransition;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\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 status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","export default {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n","/**\n * Static methods for react-tooltip\n */\nimport CONSTANT from '../constant';\n\nconst dispatchGlobalEvent = (eventName, opts) => {\n // Compatible with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n let event;\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, { detail: opts });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n\n window.dispatchEvent(event);\n};\n\nexport default function(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, { target });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = () => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, { target });\n };\n\n target.prototype.globalRebuild = function() {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n\n target.prototype.globalShow = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n this.showTooltip(\n { currentTarget: hasTarget && event.detail.target },\n true\n );\n }\n };\n\n target.prototype.globalHide = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n this.hideTooltip(\n { currentTarget: hasTarget && event.detail.target },\n hasTarget\n );\n }\n };\n}\n","/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nexport const checkStatus = function(dataEventOff, e) {\n const { show } = this.state;\n const { id } = this.props;\n const isCapture = this.isCapture(e.currentTarget);\n const currentItem = e.currentTarget.getAttribute('currentItem');\n\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\n\nconst setUntargetItems = function(currentTarget, targetArray) {\n for (let i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\n\nconst customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set(target, event, listener) {\n if (this.id in target) {\n const map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: { [event]: listener }\n });\n }\n },\n get(target, event) {\n const map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\n\nexport default function(target) {\n target.prototype.isCustomEvent = function(ele) {\n const { event } = this.state;\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = ele.getAttribute('data-event') || event;\n const dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n\n dataEvent.split(' ').forEach(event => {\n ele.removeEventListener(event, customListeners.get(ele, event));\n const customListener = checkStatus.bind(this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(event => {\n ele.removeEventListener(event, this.hideTooltip);\n ele.addEventListener(event, this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = event || ele.getAttribute('data-event');\n const dataEventOff = eventOff || ele.getAttribute('data-event-off');\n\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n","/**\n * Util method to get effect\n */\nimport { checkStatus } from './customEvent';\n\nconst makeProxy = e => {\n const proxy = {};\n for (const key in e) {\n if (typeof e[key] === 'function') {\n proxy[key] = e[key].bind(e);\n } else {\n proxy[key] = e[key];\n }\n }\n return proxy;\n};\n\nconst bodyListener = function(callback, options, e) {\n const { respectEffect = false, customEvent = false } = options;\n const { id } = this.props;\n\n const tip = e.target.getAttribute('data-tip') || null;\n const forId = e.target.getAttribute('data-for') || null;\n\n const target = e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n\n const isTargetBelongsToTooltip =\n (id == null && forId == null) || forId === id;\n\n if (\n tip != null &&\n (!respectEffect || this.getEffect(target) === 'float') &&\n isTargetBelongsToTooltip\n ) {\n const proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\n\nconst findCustomEvents = (targetArray, dataAttribute) => {\n const events = {};\n targetArray.forEach(target => {\n const event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(event => (events[event] = true));\n });\n\n return events;\n};\n\nconst getBody = () => document.getElementsByTagName('body')[0];\n\nexport default function(target) {\n target.prototype.isBodyMode = function() {\n return !!this.props.bodyMode;\n };\n\n target.prototype.bindBodyListener = function(targetArray) {\n const {\n event,\n eventOff,\n possibleCustomEvents,\n possibleCustomEventsOff\n } = this.state;\n const body = getBody();\n\n const customEvents = findCustomEvents(targetArray, 'data-event');\n const customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents\n .split(' ')\n .forEach(event => (customEvents[event] = true));\n possibleCustomEventsOff\n .split(' ')\n .forEach(event => (customEventsOff[event] = true));\n\n this.unbindBodyListener(body);\n\n const listeners = (this.bodyModeListeners = {});\n if (event == null) {\n listeners.mouseover = bodyListener.bind(this, this.showTooltip, {});\n listeners.mousemove = bodyListener.bind(this, this.updateTooltip, {\n respectEffect: true\n });\n listeners.mouseout = bodyListener.bind(this, this.hideTooltip, {});\n }\n\n for (const event in customEvents) {\n listeners[event] = bodyListener.bind(\n this,\n e => {\n const targetEventOff =\n e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(this, targetEventOff, e);\n },\n { customEvent: true }\n );\n }\n for (const event in customEventsOff) {\n listeners[event] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (const event in listeners) {\n body.addEventListener(event, listeners[event]);\n }\n };\n\n target.prototype.unbindBodyListener = function(body) {\n body = body || getBody();\n\n const listeners = this.bodyModeListeners;\n for (const event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\n };\n}\n","/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nexport default function(e, target, node, place, desiredPlace, effect, offset) {\n const { width: tipWidth, height: tipHeight } = getDimensions(node);\n\n const { width: targetWidth, height: targetHeight } = getDimensions(target);\n\n const { mouseX, mouseY } = getCurrentOffset(e, target, effect);\n const defaultOffset = getDefaultPosition(\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n );\n const { extraOffsetX, extraOffsetY } = calculateOffset(offset);\n\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const { parentTop, parentLeft } = getParent(node);\n\n // Get the edge offset of the tooltip\n const getTipOffsetLeft = place => {\n const offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetRight = place => {\n const offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetTop = place => {\n const offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n const getTipOffsetBottom = place => {\n const offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n const outsideLeft = p => getTipOffsetLeft(p) < 0;\n const outsideRight = p => getTipOffsetRight(p) > windowWidth;\n const outsideTop = p => getTipOffsetTop(p) < 0;\n const outsideBottom = p => getTipOffsetBottom(p) > windowHeight;\n\n // Check whether the tooltip with orientation p is completely inside the client window\n const outside = p =>\n outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n const inside = p => !outside(p);\n\n const placesList = ['top', 'bottom', 'left', 'right'];\n const insideList = [];\n for (let i = 0; i < 4; i++) {\n const p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n\n let isNewState = false;\n let newPlace;\n const shouldUpdatePlace = desiredPlace !== place;\n if (inside(desiredPlace) && shouldUpdatePlace) {\n isNewState = true;\n newPlace = desiredPlace;\n } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {\n isNewState = true;\n newPlace = insideList[0];\n }\n\n if (isNewState) {\n return {\n isNewState: true,\n newState: { place: newPlace }\n };\n }\n\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n}\n\nconst getDimensions = node => {\n const { height, width } = node.getBoundingClientRect();\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\nconst getCurrentOffset = (e, currentTarget, effect) => {\n const boundingClientRect = currentTarget.getBoundingClientRect();\n const targetTop = boundingClientRect.top;\n const targetLeft = boundingClientRect.left;\n const { width: targetWidth, height: targetHeight } = getDimensions(\n currentTarget\n );\n\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nconst getDefaultPosition = (\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n) => {\n let top;\n let right;\n let bottom;\n let left;\n const disToMouse = 3;\n const triangleHeight = 2;\n const cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n\n return { top, bottom, left, right };\n};\n\n// Consider additional offset into position calculation\nconst calculateOffset = offset => {\n let extraOffsetX = 0;\n let extraOffsetY = 0;\n\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (const key in offset) {\n if (key === 'top') {\n extraOffsetY -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffsetY += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffsetX -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffsetX += parseInt(offset[key], 10);\n }\n }\n\n return { extraOffsetX, extraOffsetY };\n};\n\n// Get the offset of the parent elements\nconst getParent = currentTarget => {\n let currentParent = currentTarget;\n while (currentParent) {\n const computedStyle = window.getComputedStyle(currentParent);\n // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n if (\n computedStyle.getPropertyValue('transform') !== 'none' ||\n computedStyle.getPropertyValue('will-change') === 'transform'\n )\n break;\n currentParent = currentParent.parentElement;\n }\n\n const parentTop =\n (currentParent && currentParent.getBoundingClientRect().top) || 0;\n const parentLeft =\n (currentParent && currentParent.getBoundingClientRect().left) || 0;\n\n return { parentTop, parentLeft };\n};\n","/**\n * To get the tooltip content\n * it may comes from data-tip or this.props.children\n * it should support multiline\n *\n * @params\n * - `tip` {String} value of data-tip\n * - `children` {ReactElement} this.props.children\n * - `multiline` {Any} could be Bool(true/false) or String('true'/'false')\n *\n * @return\n * - String or react component\n */\nimport React from 'react';\n\nexport default function(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n const regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map((d, i) => {\n return (\n \n {d}\n \n );\n });\n}\n","/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nexport function parseAria(props) {\n const ariaObj = {};\n Object.keys(props)\n .filter(prop => {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n })\n .forEach(prop => {\n ariaObj[prop] = props[prop];\n });\n\n return ariaObj;\n}\n","/**\n * Convert nodelist to array\n * @see https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/core/createArrayFromMixed.js#L24\n * NodeLists are functions in Safari\n */\n\nexport default function(nodeList) {\n const length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(index => nodeList[index]);\n}\n","/**\n * Default pop-up style values (text color, background color).\n */\nconst defaultColors = {\n dark: {\n text: '#fff',\n background: '#222',\n border: 'transparent',\n arrow: '#222'\n },\n success: {\n text: '#fff',\n background: '#8DC572',\n border: 'transparent',\n arrow: '#8DC572'\n },\n warning: {\n text: '#fff',\n background: '#F0AD4E',\n border: 'transparent',\n arrow: '#F0AD4E'\n },\n error: {\n text: '#fff',\n background: '#BE6464',\n border: 'transparent',\n arrow: '#BE6464'\n },\n info: {\n text: '#fff',\n background: '#337AB7',\n border: 'transparent',\n arrow: '#337AB7'\n },\n light: {\n text: '#222',\n background: '#fff',\n border: 'transparent',\n arrow: '#fff'\n }\n};\n\nexport function getDefaultPopupColors(type) {\n return defaultColors[type] ? { ...defaultColors[type] } : undefined;\n}\n","import { getDefaultPopupColors } from './defaultStyles';\n\n/**\n * Generates the specific tooltip style for use on render.\n */\nexport function generateTooltipStyle(uuid, customColors, type, hasBorder) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder));\n}\n\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\nfunction generateStyle(uuid, colors) {\n const textColor = colors.text;\n const backgroundColor = colors.background;\n const borderColor = colors.border;\n const arrowColor = colors.arrow;\n\n return `\n \t.${uuid} {\n\t color: ${textColor};\n\t background: ${backgroundColor};\n\t border: 1px solid ${borderColor};\n \t}\n\n \t.${uuid}.place-top {\n margin-top: -10px;\n }\n .${uuid}.place-top::before {\n border-top: 8px solid ${borderColor};\n }\n .${uuid}.place-top::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n bottom: -6px;\n left: 50%;\n margin-left: -8px;\n border-top-color: ${arrowColor};\n border-top-style: solid;\n border-top-width: 6px;\n }\n\n .${uuid}.place-bottom {\n margin-top: 10px;\n }\n .${uuid}.place-bottom::before {\n border-bottom: 8px solid ${borderColor};\n }\n .${uuid}.place-bottom::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n top: -6px;\n left: 50%;\n margin-left: -8px;\n border-bottom-color: ${arrowColor};\n border-bottom-style: solid;\n border-bottom-width: 6px;\n }\n\n .${uuid}.place-left {\n margin-left: -10px;\n }\n .${uuid}.place-left::before {\n border-left: 8px solid ${borderColor};\n }\n .${uuid}.place-left::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n right: -6px;\n top: 50%;\n margin-top: -4px;\n border-left-color: ${arrowColor};\n border-left-style: solid;\n border-left-width: 6px;\n }\n\n .${uuid}.place-right {\n margin-left: 10px;\n }\n .${uuid}.place-right::before {\n border-right: 8px solid ${borderColor};\n }\n .${uuid}.place-right::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n left: -6px;\n top: 50%;\n margin-top: -4px;\n border-right-color: ${arrowColor};\n border-right-style: solid;\n border-right-width: 6px;\n }\n `;\n}\n\nfunction getPopupColors(customColors, type, hasBorder) {\n const textColor = customColors.text;\n const backgroundColor = customColors.background;\n const borderColor = customColors.border;\n const arrowColor = customColors.arrow\n ? customColors.arrow\n : customColors.background;\n\n const colors = getDefaultPopupColors(type);\n\n if (textColor) {\n colors.text = textColor;\n }\n\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n\n return colors;\n}\n","/**\n * Tracking target removing from DOM.\n * It's necessary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nconst getMutationObserverClass = () => {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n );\n};\n\nexport default function(target) {\n target.prototype.bindRemovalTracker = function() {\n const MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n\n const observer = new MutationObserver(mutations => {\n for (let m1 = 0; m1 < mutations.length; m1++) {\n const mutation = mutations[m1];\n for (let m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n const element = mutation.removedNodes[m2];\n if (element === this.state.currentTarget) {\n this.hideTooltip();\n return;\n }\n }\n }\n });\n\n observer.observe(window.document, { childList: true, subtree: true });\n\n this.removalTracker = observer;\n };\n\n target.prototype.unbindRemovalTracker = function() {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n}\n","/* eslint-disable no-unused-vars, dot-notation */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/* Decorators */\nimport staticMethods from './decorators/staticMethods';\nimport windowListener from './decorators/windowListener';\nimport customEvent from './decorators/customEvent';\nimport isCapture from './decorators/isCapture';\nimport getEffect from './decorators/getEffect';\nimport bodyMode from './decorators/bodyMode';\nimport trackRemoval from './decorators/trackRemoval';\n\n/* Utils */\nimport getPosition from './utils/getPosition';\nimport getTipContent from './utils/getTipContent';\nimport { parseAria } from './utils/aria';\nimport nodeListToArray from './utils/nodeListToArray';\nimport { generateUUID } from './utils/uuid';\n\n/* CSS */\nimport './index.scss';\nimport { generateTooltipStyle } from './decorators/styler';\n\n@staticMethods\n@windowListener\n@customEvent\n@isCapture\n@getEffect\n@bodyMode\n@trackRemoval\nclass ReactTooltip extends React.Component {\n static get propTypes() {\n return {\n uuid: PropTypes.string,\n children: PropTypes.any,\n place: PropTypes.string,\n type: PropTypes.string,\n effect: PropTypes.string,\n offset: PropTypes.object,\n multiline: PropTypes.bool,\n border: PropTypes.bool,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n arrowColor: PropTypes.string,\n insecure: PropTypes.bool,\n class: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n html: PropTypes.bool,\n delayHide: PropTypes.number,\n delayUpdate: PropTypes.number,\n delayShow: PropTypes.number,\n event: PropTypes.string,\n eventOff: PropTypes.string,\n isCapture: PropTypes.bool,\n globalEventOff: PropTypes.string,\n getContent: PropTypes.any,\n afterShow: PropTypes.func,\n afterHide: PropTypes.func,\n overridePosition: PropTypes.func,\n disable: PropTypes.bool,\n scrollHide: PropTypes.bool,\n resizeHide: PropTypes.bool,\n wrapper: PropTypes.string,\n bodyMode: PropTypes.bool,\n possibleCustomEvents: PropTypes.string,\n possibleCustomEventsOff: PropTypes.string,\n clickable: PropTypes.bool\n };\n }\n\n static defaultProps = {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n };\n\n static supportedWrappers = ['div', 'span'];\n\n static displayName = 'ReactTooltip';\n\n constructor(props) {\n super(props);\n\n this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top', // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark', // Color theme of tooltip\n effect: 'float', // float or fixed\n show: false,\n border: false,\n customColors: {},\n offset: {},\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null, // Current mouse event\n currentTarget: null, // Current target of mouse event\n ariaProps: parseAria(props), // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n possibleCustomEvents: props.possibleCustomEvents || '',\n possibleCustomEventsOff: props.possibleCustomEventsOff || '',\n originTooltip: null,\n isMultiline: false\n };\n\n this.bind([\n 'showTooltip',\n 'updateTooltip',\n 'hideTooltip',\n 'hideTooltipOnScroll',\n 'getTooltipContent',\n 'globalRebuild',\n 'globalShow',\n 'globalHide',\n 'onWindowResize',\n 'mouseOnToolTip'\n ]);\n\n this.mount = true;\n this.delayShowLoop = null;\n this.delayHideLoop = null;\n this.delayReshow = null;\n this.intervalUpdateContent = null;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n bind(methodArray) {\n methodArray.forEach(method => {\n this[method] = this[method].bind(this);\n });\n }\n\n componentDidMount() {\n const { insecure, resizeHide } = this.props;\n\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { ariaProps } = prevState;\n const newAriaProps = parseAria(nextProps);\n const isChanged = Object.keys(newAriaProps).some(props => {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return {\n ...prevState,\n ariaProps: newAriaProps\n };\n }\n\n componentWillUnmount() {\n this.mount = false;\n\n this.clearTimer();\n\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n mouseOnToolTip() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n\n /**\n * Pick out corresponded target elements\n */\n getTargetArray(id) {\n let targetArray = [];\n let selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n const escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = `[data-tip][data-for=\"${escaped}\"]`;\n }\n\n // Scan document for shadow DOM elements\n nodeListToArray(document.getElementsByTagName('*'))\n .filter(element => element.shadowRoot)\n .forEach(element => {\n targetArray = targetArray.concat(\n nodeListToArray(element.shadowRoot.querySelectorAll(selector))\n );\n });\n return targetArray.concat(\n nodeListToArray(document.querySelectorAll(selector))\n );\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n bindListener() {\n const { id, globalEventOff, isCapture } = this.props;\n const targetArray = this.getTargetArray(id);\n\n targetArray.forEach(target => {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) {\n this.customUnbindListener(target);\n }\n });\n\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(target => {\n const isCaptureMode = this.isCapture(target);\n const effect = this.getEffect(target);\n if (this.isCustomEvent(target)) {\n this.customBindListener(target);\n return;\n }\n\n target.addEventListener('mouseenter', this.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener(\n 'mousemove',\n this.updateTooltip,\n isCaptureMode\n );\n }\n target.addEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n });\n }\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n unbindListener() {\n const { id, globalEventOff } = this.props;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n const targetArray = this.getTargetArray(id);\n targetArray.forEach(target => {\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) this.customUnbindListener(target);\n });\n }\n\n if (globalEventOff)\n window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and unmount the component\n * it is necessary to invoke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n unbindBasicListener(target) {\n const isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n\n getTooltipContent() {\n const { getContent, children } = this.props;\n\n // Generate tooltip content\n let content;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n\n return getTipContent(\n this.state.originTooltip,\n children,\n content,\n this.state.isMultiline\n );\n }\n\n isEmptyTip(placeholder) {\n return (\n (typeof placeholder === 'string' && placeholder === '') ||\n placeholder === null\n );\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n const { multiline, getContent } = this.props;\n const originTooltip = e.currentTarget.getAttribute('data-tip');\n const isMultiline =\n e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n const switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n let scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // Make sure the correct place is set\n const desiredPlace =\n e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n const effect =\n (switchToSolid && 'solid') || this.getEffect(e.currentTarget);\n const offset =\n e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n const result = getPosition(\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n }\n\n const place = result.isNewState ? result.newState.place : desiredPlace;\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n\n const target = e.currentTarget;\n\n const reshowDelay = this.state.show\n ? target.getAttribute('data-delay-update') || this.props.delayUpdate\n : 0;\n\n const self = this;\n\n const updateState = function updateState() {\n self.setState(\n {\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n customColors: {\n text:\n target.getAttribute('data-text-color') ||\n self.props.textColor ||\n null,\n background:\n target.getAttribute('data-background-color') ||\n self.props.backgroundColor ||\n null,\n border:\n target.getAttribute('data-border-color') ||\n self.props.borderColor ||\n null,\n arrow:\n target.getAttribute('data-arrow-color') ||\n self.props.arrowColor ||\n null\n },\n effect: effect,\n offset: offset,\n html:\n (target.getAttribute('data-html')\n ? target.getAttribute('data-html') === 'true'\n : self.props.html) || false,\n delayShow:\n target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide:\n target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate:\n target.getAttribute('data-delay-update') ||\n self.props.delayUpdate ||\n 0,\n border:\n (target.getAttribute('data-border')\n ? target.getAttribute('data-border') === 'true'\n : self.props.border) || false,\n extraClass:\n target.getAttribute('data-class') ||\n self.props.class ||\n self.props.className ||\n '',\n disable:\n (target.getAttribute('data-tip-disable')\n ? target.getAttribute('data-tip-disable') === 'true'\n : self.props.disable) || false,\n currentTarget: target\n },\n () => {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n\n self.updateTooltip(e);\n\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(() => {\n if (self.mount) {\n const { getContent } = self.props;\n const placeholder = getTipContent(\n originTooltip,\n '',\n getContent[0](),\n isMultiline\n );\n const isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({ isEmptyTip });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n }\n );\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, update tool tip\n */\n updateTooltip(e) {\n const { delayShow, disable } = this.state;\n const { afterShow } = this.props;\n const placeholder = this.getTooltipContent();\n const delayTime = parseInt(delayShow, 10);\n const eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n // if the tooltip is empty, disable the tooltip\n if (this.isEmptyTip(placeholder) || disable) {\n return;\n }\n\n const updateState = () => {\n if (\n (Array.isArray(placeholder) && placeholder.length > 0) ||\n placeholder\n ) {\n const isInvisible = !this.state.show;\n this.setState(\n {\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n },\n () => {\n this.updatePosition();\n if (isInvisible && afterShow) {\n afterShow(e);\n }\n }\n );\n }\n };\n\n clearTimeout(this.delayShowLoop);\n if (delayShow) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n listenForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n removeListenerForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n hideTooltip(e, hasTarget, options = { isScroll: false }) {\n const { disable } = this.state;\n const { isScroll } = options;\n const delayHide = isScroll ? 0 : this.state.delayHide;\n const { afterHide } = this.props;\n const placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement || !this.state.show) return;\n }\n\n const resetState = () => {\n const isVisible = this.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n this.listenForTooltipExit();\n return;\n }\n\n this.removeListenerForTooltipExit();\n\n this.setState({ show: false }, () => {\n this.removeScrollListener(this.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\n }\n });\n };\n\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * When scroll, hide tooltip\n */\n hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, { isScroll: true });\n }\n\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n addScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n\n removeScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener(\n 'scroll',\n this.hideTooltipOnScroll,\n isCaptureMode\n );\n }\n\n // Calculation the position\n updatePosition() {\n const {\n currentEvent,\n currentTarget,\n place,\n desiredPlace,\n effect,\n offset\n } = this.state;\n const node = this.tooltipRef;\n const result = getPosition(\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n }\n\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, () => {\n this.updatePosition();\n });\n }\n\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n\n hasCustomColors() {\n return Boolean(\n Object.keys(this.state.customColors).find(\n color => color !== 'border' && this.state.customColors[color]\n ) ||\n (this.state.border && this.state.customColors['border'])\n );\n }\n\n render() {\n const { extraClass, html, ariaProps, disable } = this.state;\n const content = this.getTooltipContent();\n const isEmptyTip = this.isEmptyTip(content);\n const style = generateTooltipStyle(\n this.state.uuid,\n this.state.customColors,\n this.state.type,\n this.state.border\n );\n\n const tooltipClass =\n '__react_component_tooltip' +\n ` ${this.state.uuid}` +\n (this.state.show && !disable && !isEmptyTip ? ' show' : '') +\n (this.state.border ? ' border' : '') +\n ` place-${this.state.place}` + // top, bottom, left, right\n ` type-${this.hasCustomColors() ? 'custom' : this.state.type}` + // dark, success, warning, error, info, light, custom\n (this.props.delayUpdate ? ' allow_hover' : '') +\n (this.props.clickable ? ' allow_click' : '');\n\n let Wrapper = this.props.wrapper;\n\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n\n const wrapperClassName = [tooltipClass, extraClass]\n .filter(Boolean)\n .join(' ');\n\n if (html) {\n const htmlContent = `${content}\\n`;\n\n return (\n (this.tooltipRef = ref)}\n {...ariaProps}\n data-id=\"tooltip\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n );\n } else {\n return (\n (this.tooltipRef = ref)}\n data-id=\"tooltip\"\n >\n