{"version":3,"sources":["webpack://octopus-deploy-portal/./node_modules/react-tippy/dist/tippy.css","webpack://octopus-deploy-portal/./node_modules/react-addons-shallow-compare/index.js","webpack://octopus-deploy-portal/./node_modules/react-diff-viewer/lib/compute-lines.js","webpack://octopus-deploy-portal/./node_modules/react-diff-viewer/lib/index.js","webpack://octopus-deploy-portal/./node_modules/react-diff-viewer/lib/styles.js","webpack://octopus-deploy-portal/./node_modules/react-diff-viewer/node_modules/classnames/index.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/HTML5Backend.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/getEmptyImage.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-html5-backend/dist/esm/index.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-multi-backend/dist/cjs/HTML5toTouch.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-preview/dist/esm/index.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-multi-backend/dist/esm/Preview.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/interfaces.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/utils/predicates.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/utils/offsets.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/utils/supportsPassive.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/OptionsReader.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/TouchBackend.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/utils/math.js","webpack://octopus-deploy-portal/./node_modules/react-dnd-touch-backend/dist/esm/index.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/DndContext.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/useCollector.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/useDragDropManager.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/useDragLayer.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/DndProvider.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/DragPreviewImage.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/useMonitorOutput.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/registration.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/DragSourceMonitorImpl.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/utils/cloneWithRef.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/wrapConnectorHooks.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/utils/isRef.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/SourceConnector.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/drag.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/useDrag.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/TargetConnector.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/common/DropTargetMonitorImpl.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/useDrop.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/hooks/internal/drop.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/utils/js_utils.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/utils.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/disposables.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/decorateHandler.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/utils/isValidType.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/createSourceFactory.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/DragSource.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/createTargetFactory.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/DropTarget.js","webpack://octopus-deploy-portal/./node_modules/react-dnd/dist/esm/decorators/DragLayer.js","webpack://octopus-deploy-portal/./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://octopus-deploy-portal/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://octopus-deploy-portal/./node_modules/react-dom/index.js","webpack://octopus-deploy-portal/./node_modules/react-dom/server.browser.js","webpack://octopus-deploy-portal/./node_modules/react-dropzone/dist/es/utils/index.js","webpack://octopus-deploy-portal/./node_modules/react-dropzone/dist/es/index.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/dist/react-event-listener.cjs.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/createClass.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/extends.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/inherits.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://octopus-deploy-portal/./node_modules/react-event-listener/node_modules/@babel/runtime/helpers/typeof.js","webpack://octopus-deploy-portal/./node_modules/react-hotkeys-hook/dist-web/index.js","webpack://octopus-deploy-portal/./node_modules/react-is/cjs/react-is.production.min.js","webpack://octopus-deploy-portal/./node_modules/react-is/index.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/decorator.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/index.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/utils/debounce.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/utils/event.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/utils/scrollParent.js","webpack://octopus-deploy-portal/./node_modules/react-lazyload/lib/utils/throttle.js","webpack://octopus-deploy-portal/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://octopus-deploy-portal/./node_modules/react-numeric-input/index.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/components/Context.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/utils/batch.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/utils/Subscription.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/components/Provider.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/mergeProps.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/connect.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/hooks/useStore.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/hooks/useSelector.js","webpack://octopus-deploy-portal/./node_modules/react-redux/es/index.js","webpack://octopus-deploy-portal/./node_modules/react-responsive/dist/react-responsive.js","webpack://octopus-deploy-portal/./node_modules/react-reverse-portal/dist/web/index.js","webpack://octopus-deploy-portal/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://octopus-deploy-portal/./node_modules/react-router/esm/react-router.js","webpack://octopus-deploy-portal/./node_modules/react-router/node_modules/isarray/index.js","webpack://octopus-deploy-portal/./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack://octopus-deploy-portal/./node_modules/react-scroll-up-button/dist/react-scroll-up-button.js","webpack://octopus-deploy-portal/./node_modules/react-stickynode/dist/Sticky.js","webpack://octopus-deploy-portal/./node_modules/react-stickynode/index.js","webpack://octopus-deploy-portal/./node_modules/react-tippy/dist/react-tippy.js","webpack://octopus-deploy-portal/./node_modules/react-tippy/node_modules/popper.js/dist/esm/popper.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/utils/animationFrame.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/Grid.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Collection/CollectionView.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Collection/Section.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Collection/SectionManager.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Collection/Collection.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/List/List.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/vendor/intervalTree.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Masonry/Masonry.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Masonry/createCellPositioner.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/createMultiSort.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/SortDirection.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/SortIndicator.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/Column.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/Table/Table.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","webpack://octopus-deploy-portal/./node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","webpack://octopus-deploy-portal/./node_modules/react/cjs/react.production.min.js","webpack://octopus-deploy-portal/./node_modules/react/index.js","webpack://octopus-deploy-portal/./node_modules/react-tippy/dist/tippy.css?1d18"],"names":["___CSS_LOADER_EXPORT___","push","module","id","hasOwnProperty","Object","prototype","is","x","y","shallowEqual","objA","objB","keysA","keys","keysB","length","i","call","exports","instance","nextProps","nextState","props","state","__read","this","o","n","m","Symbol","iterator","r","e","ar","next","done","value","error","__spread","arguments","concat","defineProperty","DiffType","DiffMethod","diff","jsDiff","constructLines","lines","split","every","val","pop","lastLine","firstLine","shift","computeLineInformation","oldString","newString","disableWordDiff","compareMethod","linesOffset","CHARS","diffArray","diffLines","trimRight","newlineIsToken","ignoreWhitespace","ignoreCase","rightLineNumber","leftLineNumber","lineInformation","counter","ignoreDiffIndexes","getLineInformation","diffIndex","added","removed","evaluateOnlyFirstLine","map","line","lineIndex","left","right","includes","lineNumber","type","REMOVED","nextDiff","_a","rightValue","computedDiff","oldValue","newValue","forEach","diffInformation","ADDED","DEFAULT","computeDiff","filter","Boolean","index","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","p","__","constructor","create","React","PropTypes","classnames_1","compute_lines_1","LineNumberPrefix","styles_1","memoize","default","DiffViewer","_super","_this","resetCodeBlocks","expandedBlocks","setState","onBlockExpand","prevState","slice","computeStyles","onLineNumberClickProxy","onLineNumberClick","renderWordDiff","renderer","wordDiff","createElement","key","className","styles","wordAdded","wordRemoved","renderLine","prefix","additionalLineNumber","additionalPrefix","_b","_c","_d","content","lineNumberTemplate","additionalLineNumberTemplate","highlightLine","highlightLines","isArray","renderContent","Fragment","hideLineNumbers","onClick","gutter","emptyGutter","diffAdded","diffRemoved","highlightedGutter","splitView","marker","emptyLine","highlightedLine","contentText","renderSplitView","LEFT","RIGHT","renderInlineView","onBlockClickProxy","renderSkippedLineIndicator","num","blockNumber","leftBlockLineNumber","rightBlockLineNumber","message","codeFoldMessageRenderer","codeFoldContent","tabIndex","isUnifiedViewWithoutLineNumbers","codeFold","codeFoldGutter","renderDiff","extraLines","extraLinesSurroundingDiff","skippedLines","diffBlockStart","currentPosition","showDiffOnly","diffNodes","length_1","render","useDarkTheme","leftTitle","rightTitle","Error","nodes","colSpanOnSplitView","colSpanOnInlineView","title","colSpan","titleBlock","diffContainer","defaultProps","propTypes","string","isRequired","bool","oneOf","values","func","number","object","arrayOf","oneOfType","element","Component","__assign","assign","t","s","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","emotion_1","styleOverride","_e","_f","_g","_h","variables","overrideVariables","themeVariables","light","diffViewerBackground","diffViewerColor","addedBackground","addedColor","removedBackground","removedColor","wordAddedBackground","wordRemovedBackground","addedGutterBackground","removedGutterBackground","gutterBackground","gutterBackgroundDark","highlightBackground","highlightGutterBackground","codeFoldGutterBackground","codeFoldBackground","emptyLineBackground","gutterColor","addedGutterColor","removedGutterColor","codeFoldContentColor","diffViewerTitleBackground","diffViewerTitleColor","diffViewerTitleBorderColor","dark","css","width","label","background","pre","margin","whiteSpace","lineHeight","borderCollapse","color","padding","borderBottom","borderLeft","display","borderRadius","backgroundColor","height","fontSize","fontWeight","a","textDecoration","cursor","paddingLeft","paddingRight","userSelect","minWidth","textAlign","opacity","defaultStyles","verticalAlign","computerOverrideStyles","reduce","acc","cx","hasOwn","classNames","classes","arg","argType","inner","join","fn","result","_defineProperties","target","descriptor","enumerable","configurable","writable","EnterLeaveCounter","isNodeInDocument","Constructor","TypeError","_classCallCheck","entered","protoProps","enteringNode","previousLength","itemsA","itemsB","set","Set","insertItem","item","add","union","node","contains","leavingNode","items","isFirefox","test","navigator","userAgent","isSafari","window","safari","MonotonicInterpolant","xs","ys","indexes","sort","dx","dy","dys","dxs","ms","_i","c1s","_i2","m2","mNext","dxNext","common","c2s","c3s","_i3","c1","invDx","_common","mid","low","high","xHere","Math","floor","max","diffSq","getNodeClientOffset","el","nodeType","parentElement","_el$getBoundingClient","getBoundingClientRect","top","getEventClientOffset","clientX","clientY","_nativeTypesConfig","FILE","URL","TEXT","getDataFromDataTransfer","dataTransfer","typesToTry","defaultValue","resultSoFar","typeToTry","getData","_defineProperty","obj","nativeTypesConfig","exposeProperties","files","matchesTypes","urls","text","NativeDragSource","config","initializeExposedProperties","property","get","console","warn","_this2","newProperties","defineProperties","monitor","handle","getSourceId","matchNativeItemType","dataTransferTypes","types","nativeItemType","some","OptionsReader","globalContext","document","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread","source","getOwnPropertyDescriptors","emptyImage","HTML5Backend","manager","sourcePreviewNodes","Map","sourcePreviewNodeOptions","sourceNodes","sourceNodeOptions","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","currentNativeSource","currentNativeHandle","currentDragSourceNode","altKeyPressed","mouseMoveTimeoutTimer","asyncEndDragFrameId","dragOverTargetIds","getSourceClientOffset","sourceId","endDragNativeItem","isDraggingNativeItem","actions","endDrag","registry","removeSource","body","endDragIfSourceWasRemovedFromDOM","clearCurrentDragSourceNode","handleTopDragStartCapture","handleTopDragStart","defaultPrevented","clientOffset","isDragging","beginDrag","publishSource","nativeType","setDragImage","sourceNode","dragPreview","_this$getCurrentSourc","getCurrentSourcePreviewNodeOptions","dragPreviewOffset","anchorPoint","offsetPoint","isImage","nodeName","documentElement","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","sourceWidth","offsetWidth","sourceHeight","offsetHeight","anchorX","anchorY","_getDragPreviewSize","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewSize","offsetX","offsetY","isManualOffsetY","interpolate","getDragPreviewOffset","setData","err","setCurrentDragSourceNode","captureDraggingState","publishDragSource","setTimeout","beginDragNativeItem","hasAttribute","preventDefault","handleTopDragEndCapture","handleTopDragEnterCapture","enterLeaveCounter","enter","handleTopDragEnter","altKey","hover","targetId","canDropOnTarget","dropEffect","getCurrentDropEffect","handleTopDragOverCapture","handleTopDragOver","handleTopDragLeaveCapture","leave","handleTopDropCapture","loadDataTransfer","reset","handleTopDrop","drop","handleSelectStart","dragDrop","tagName","isContentEditable","options","getActions","getMonitor","getRegistry","undefined","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","cancelAnimationFrame","delete","_this3","handleDragStart","setAttribute","addEventListener","removeEventListener","_this4","handleDragEnter","handleDragOver","handleDrop","getCurrentSourceNodeOptions","itemType","getItemType","createNativeDragSource","addSource","_this5","clearTimeout","unshift","getEmptyImage","Image","src","context","_reactDndHtml5Backend","_interopRequireDefault","_reactDndTouchBackend","_dndMultiBackend","__esModule","_default","backends","backend","transition","MouseTransition","enableMouseEvents","preview","TouchTransition","PreviewContext","Preview","collectedProps","useDragLayer","currentOffset","getItem","transform","child","data","style","pointerEvents","position","WebkitTransform","children","generator","Provider","arr","_useState2","useState","_arrayWithHoles","toString","_arr","_n","_s","_iterableToArrayLimit","_nonIterableRest","enabled","setEnabled","useEffect","observer","backendChanged","previewEnabled","PreviewManager","Context","ListenerType","eventShouldStartDrag","button","isTouchEvent","targetTouches","lastTargetTouchFallback","touches","getEventClientTouchOffset","supported","_eventNames","incoming","enableTouchEvents","enableKeyboardEvents","ignoreContextMenu","enableHoverOutsideTarget","touchSlop","scrollAngleRanges","delayTouchStart","delay","delayMouseStart","eventNames","mouse","start","move","end","contextmenu","touch","keyboard","keydown","TouchBackend","handleTopMoveStartCapture","moveStartSourceIds","handleMoveStart","handleTopMoveStart","_mouseClientOffset","waitingForDelay","handleTopMoveStartDelay","timeout","bind","handleTopMoveCapture","handleMove","_","handleTopMove","x1","y1","x2","y2","_isScrolling","angleRanges","angle","atan2","PI","inAngleRanges","sqrt","pow","abs","installSourceNodeRemovalObserver","dragOverTargetNodes","targetNodes","elementsAtPoint","getDropTargetElementsAtPoint","elementsFromPoint","elementsAtPointExtended","nodeId","currentNode","orderedDragOverTargetIds","ids","reverse","handleTopMoveEndCapture","buttons","eventShouldEndDrag","didDrop","uninstallSourceNodeRemovalObserver","handleCancelOnEscape","listenerTypes","isSetUp","getTopMoveStartHandler","subject","event","handler","capture","passive","listenerType","evt","coords","droppedOn","elementFromPoint","childMatch","draggedSourceNode","draggedSourceNodeRemovalObserver","MutationObserver","resurrectSourceNode","observe","childList","removeAttribute","appendChild","disconnect","DndContext","dragDropManager","createDndContext","debugMode","useCollector","collect","onUpdate","collected","setCollected","updateCollected","useCallback","nextValue","useDragDropManager","useContext","useIsomorphicLayoutEffect","useLayoutEffect","_useCollector2","subscribeToOffsetChange","subscribeToStateChange","refCount","DndProvider","memo","_ref","_getDndContextValue2","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_objectWithoutProperties","getGlobalContext","ctx","instanceSymbol","createSingletonDndContext","isGlobalInstance","displayName","for","g","DragPreviewImage","connect","img","onload","useMonitorOutput","onCollect","handlerId","getHandlerId","handlerIds","registerTarget","addTarget","removeTarget","registerSource","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","canDragSource","isDraggingSource","listener","isOverTarget","getTargetIds","isSourcePublic","getDropResult","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","setRef","ref","current","cloneWithRef","newRef","previousRef","cloneElement","throwIfCompositeComponentElement","name","wrapConnectorHooks","hooks","wrappedHooks","hook","endsWith","wrappedHook","elementOrNode","isValidElement","wrapHookToRecognizeElement","_typeof","isRef","SourceConnector","dragSource","clearDragSource","dragSourceOptions","dragSourceRef","dragSourceNode","reconnectDragSource","clearDragPreview","dragPreviewOptions","dragPreviewRef","dragPreviewNode","reconnectDragPreview","dragSourceOptionsInternal","dragPreviewOptionsInternal","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","lastConnectedDragPreview","lastConnectedDragPreviewOptions","newHandlerId","reconnect","didChange","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","dragSourceUnsubscribe","connectDragSource","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","dragPreviewUnsubscribe","connectDragPreview","useDrag","spec","specRef","useRef","_useDragSourceMonitor2","useMemo","getBackend","connector","_spec$current","begin","beginResult","canDrag","globalMonitor","_registerSource2","unregister","receiveHandlerId","useDragHandler","previewOptions","TargetConnector","dropTarget","clearDropTarget","dropTargetOptions","dropTargetRef","dropTargetNode","dropTargetOptionsInternal","lastConnectedDropTarget","lastConnectedDropTargetOptions","didDropTargetChange","didOptionsChange","disconnectDropTarget","unsubscribeDropTarget","connectDropTarget","isCallingCanDrop","DropTargetMonitorImpl","useDrop","accept","_useDropTargetMonitor2","canDrop","_registerTarget2","useDropHandler","isFunction","input","noop","isPlainObject","isObjectLike","getPrototypeOf","proto","getDecoratedComponent","instanceRef","currentRef","decoratedRef","isRefable","C","$$typeof","isRefForwardingComponent","staticProps","Disposable","action","isDisposed","dispose","isDisposable","empty","CompositeDisposable","_len","disposables","_key","shouldDispose","idx","splice","len","currentDisposables","SerialDisposable","old","_getPrototypeOf","_setPrototypeOf","decorateHandler","DecoratedComponent","createHandler","createMonitor","createConnector","registerHandler","containerDisplayName","getType","_options$arePropsEqua","arePropsEqual","Decorated","DragDropContainer","_React$Component","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","handleChange","getCurrentState","disposable","receiveProps","subClass","superClass","_inherits","currentType","prevProps","receiveType","handlerMonitor","handlerConnector","_registerHandler2","unsubscribe","setDisposable","_ref2","receiveDragDropManager","requestAnimationFrame","isValidType","allowArray","ALLOWED_SPEC_METHODS","REQUIRED_SPEC_METHODS","SourceImpl","createSourceFactory","DragSource","createSource","TargetImpl","createTargetFactory","DropTarget","createTarget","DragLayer","DragLayerContainer","isCurrentlyMounted","unsubscribeFromOffsetChange","unsubscribeFromStateChange","k","l","q","c","encodeURIComponent","aa","u","ba","ca","v","da","ea","fa","B","ha","ia","ja","ka","la","ma","_status","_result","D","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","oa","E","_threadCount","_currentValue2","F","Uint16Array","H","qa","ra","sa","ta","ua","J","f","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","K","toLowerCase","L","M","toUpperCase","replace","xlinkHref","xa","N","exec","charCodeAt","substring","ya","va","isNaN","wa","Aa","O","P","Q","R","S","U","V","W","Ba","memoizedState","queue","Ca","Da","Ea","Fa","dispatch","last","Ga","Ha","X","Ia","readContext","useReducer","useImperativeHandle","useDebugValue","useResponder","responder","useDeferredValue","useTransition","Ja","Ka","La","area","base","br","col","embed","hr","keygen","link","meta","param","track","wbr","Ma","menuitem","Y","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Na","charAt","Oa","Pa","Z","Children","toArray","Qa","Ra","listing","textarea","Sa","Ta","Ua","Wa","Xa","dangerouslySetInnerHTML","suppressContentEditableWarning","suppressHydrationWarning","Ya","$a","domNamespace","childIndex","footer","h","threadID","stack","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","destroy","clearProviders","pushProvider","_context","popProvider","read","I","G","fallbackFrame","w","then","isReactComponent","contextType","contextTypes","pa","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","getDerivedStateFromProps","updater","UNSAFE_componentWillMount","componentWillMount","getChildContext","childContextTypes","A","T","Za","renderDOM","_ctor","na","defaultChecked","checked","Va","selected","z","trim","__html","ab","renderToString","Infinity","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","version","onError","currentTarget","za","tag","_debugOwner","_debugSource","fileName","return","extractEvents","eventTypes","phasedRegistrationNames","registrationName","dependencies","stateNode","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","ob","pb","qb","mb","nb","lb","setAttributeNS","rb","sb","xb","_valueTracker","getValue","setValue","stopTracking","tb","yb","zb","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","defaultSelected","disabled","Ib","Jb","Kb","Lb","textContent","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","ec","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","kd","ld","md","setProperty","nd","od","pd","qd","rd","sd","td","ud","vd","offset","nextSibling","wd","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","location","href","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","Hd","Id","Jd","Kd","previousSibling","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","ne","String","fromCharCode","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","re","detail","se","ve","locale","which","te","ctrlKey","metaKey","char","ue","we","date","datetime","email","month","password","range","search","tel","time","url","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","pageX","pageY","shiftKey","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","tf","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","payload","callback","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","refs","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","isPureReactComponent","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","componentDidMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","Zh","$h","ai","bi","compare","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","Ri","insertBefore","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","ceil","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","min","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","hidden","Xj","_calculateChangedBits","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","querySelectorAll","JSON","stringify","form","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","fileAccepted","file","fileMatchSize","minSize","maxSize","isDefined","allFilesAccepted","isEvtWithFiles","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","fns","_len2","args","_key2","_toConsumableArray","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","_slicedToArray","Dropzone","forwardRef","_useDropzone","_ref2$disabled","_ref2$getFilesFromEve","getFilesFromEvent","_ref2$maxSize","_ref2$minSize","_ref2$multiple","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","_ref2$preventDropOnDo","preventDropOnDocument","_ref2$noClick","noClick","_ref2$noKeyboard","noKeyboard","_ref2$noDrag","noDrag","_ref2$noDragEventsBub","noDragEventsBubbling","rootRef","inputRef","_useReducer2","reducer","initialState","isFocused","isFileDialogActive","draggedFiles","openFileDialog","click","onWindowFocus","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","dragTargetsRef","onDocumentDrop","onDragEnterCb","Promise","resolve","isDragActive","onDragOverCb","_unused","onDragLeaveCb","targets","onDropCb","acceptedFiles","rejectedFiles","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref3","_ref3$refKey","refKey","onKeyDown","onFocus","onBlur","rest","onInputElementClick","getInputProps","_ref4","_ref4$refKey","onChange","autoComplete","fileCount","isDragAccept","isDragReject","open","useDropzone","_interopDefault","ex","_createClass","_extends","cache","passiveOption","attr","supportsPassiveOption","defaultEventOptions","mergeDefaultEventOptions","getEventListenerArgs","eventName","on","off","forEachListener","iteratee","eventProps","prop","isObject","substr","EventListener","_React$PureComponent","applyListeners","onOrOff","PureComponent","withOptions","objectWithoutPropertiesLoose","assertThisInitialized","_typeof2","useIsHotkeyPressed","useHotkeys","enableOnTags","memoisedCallback","keyboardEvent","hotkeysEvent","targetTagName","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_react","_react2","_index2","getDisplayName","WrappedComponent","_Component","LazyLoadDecorated","forceCheck","lazyload","_reactDom2","_propTypes2","_event","_scrollParent2","_debounce2","_throttle2","_decorator2","LISTEN_FLAG","listeners","passiveEventSupported","opts","passiveEvent","checkVisible","component","HTMLElement","parent","overflow","parentTop","parentHeight","_parent$getBoundingCl","windowInnerHeight","innerHeight","clientHeight","intersectionTop","intersectionHeight","_node$getBoundingClie","offsetTop","offsets","checkOverflowVisible","getClientRects","elementHeight","_node$getBoundingClie2","checkNormalVisible","visible","once","forceUpdate","unmountIfInvisible","lazyLoadHandler","delayType","finalLazyLoadHandler","LazyLoad","scrollport","scrollContainer","querySelector","needResetFinalLazyLoadHandler","debounce","throttle","getAttribute","listenerCount","_props","scroll","resize","placeholder","wait","immediate","timestamp","later","callNow","excludeStaticParent","overflowRegex","getComputedStyle","overflowX","overflowY","threshhold","scope","deferTimer","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","componentName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","modules","installedModules","moduleId","loaded","IS_BROWSER","RE_NUMBER","RE_INCOMPLETE_NUMBER","access","NumericInput","_isStrict","strict","btnDownHover","btnDownActive","btnUpHover","btnUpActive","inputFocus","stringValue","_propsToState","stop","onTouchEnd","out","_parse","_isMounted","_ignoreValueChange","saveSelection","_invokeEventCallback","checkValidity","getValueAsNumber","valid","validationError","supportsValidation","noValidate","pattern","required","validity","validationMessage","maxLength","validStateChanged","_valid","classList","RegExp","addClass","wrapper","remove","removeClass","parseFloat","isFinite","precision","_min","_max","round","parse","_toNumber","toFixed","format","_step","step","DIRECTION_UP","DIRECTION_DOWN","snap","_len3","_key3","_value","_timer","_recursive","increase","SPEED","DELAY","decrease","dir","callbackName","_props$callbackName","_len4","_key4","_this6","mobile","onInvalid","onValid","hasFormControl","attrs","wrap","onMouseUp","onMouseLeave","btnUp","onMouseEnter","onMouseDown","onTouchStart","btn","btnDown","_format","_len5","_key5","_len6","_key6","original","_onKeyDown","onInput","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","minus","plus","arrowUp","arrowDown","readOnly","propName","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","borderWidth","borderColor","borderStyle","boxShadow","bottom","boxSizing","border","WebkitAppearance","textShadow","ReactReduxContext","batch","getBatch","CLEARED","nullListeners","notify","Subscription","store","parentSub","handleChangeWrapper","_proto","addNestedSub","trySubscribe","subscribe","notifyNestedSubs","onStateChange","isSubscribed","clear","createListenerCollection","tryUnsubscribe","contextValue","subscription","previousState","getState","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","shouldHandleStateChanges","_ref2$storeKey","storeKey","_ref2$withRef","withRef","_ref2$forwardRef","_ref2$context","connectOptions","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","forwardedRef","wrapperProps","propsContext","ContextToUse","Consumer","didStoreComeFromProps","didStoreComeFromContext","childPropsSelector","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","forceComponentUpdateDispatch","lastChildProps","lastWrapperProps","childPropsFromStoreUpdate","renderIsScheduled","actualChildProps","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","renderedWrappedComponent","Connect","forwarded","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","handleSubsequentCalls","match","factories","strictEqual","_ref$connectHOC","connectHOC","mapStateToPropsFactories","_ref$mapStateToPropsF","mapDispatchToPropsFactories","_ref$mapDispatchToPro","bindActionCreators","mergePropsFactories","_ref$mergePropsFactor","_ref$selectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","createStoreHook","useReduxContext","createDispatchHook","useStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","contextSub","selectedState","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","errorMessage","newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","factory","__WEBPACK_EXTERNAL_MODULE_15__","_matchmedia2","_hyphenateStyleName2","_mediaQuery2","_toQuery2","defaultTypes","query","shape","matchers","function","onBeforeChange","mediaKeys","all","excludedQueryKeys","excludedPropKeys","omit","newObject","MediaQuery","_temp","matches","updateMatches","_mql","updateQuery","removeListener","addListener","hasMergeProps","childrenCount","count","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","array","nextTick","browser","env","argv","versions","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","NODE_ENV","condition","argIndex","framesToPop","stringOrNumber","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","resolution","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","maxWidth","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","printWarning","warning","uppercasePattern","msPattern","REACT_ELEMENT_TYPE","rules","realKey","keyVal","mediaQuery","parseQuery","inverse","typeMatch","expressionsMatch","expressions","expression","feature","modifier","expValue","toPx","toDpi","toDecimal","parseInt","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","captures","parsed","ratio","numbers","decimal","staticMatch","dynamicMatch","matchMedia","Mql","mql","media","invariant","ReactPropTypesSecret","loggedTypeFailures","typeSpecs","getStack","typeSpecName","shim","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","checkPropTypes","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","createPrimitiveTypeChecker","createChainableTypeChecker","typeChecker","propFullName","PropTypeError","propValue","getPropType","expectedClass","expectedClassName","isNode","propType","expectedValues","arrayOfTypeCheckers","checker","shapeTypes","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","secret","cacheKey","chainedCheckType","expectedType","getPreciseType","iteratorFn","maybeIterable","getIteratorFn","entries","entry","isSymbol","ELEMENT_TYPE_HTML","ELEMENT_TYPE_SVG","createPortalNode","lastPlaceholder","initialProps","attributes","portalNode","setPortalProps","getInitialPortalProps","mount","newParent","newPlaceholder","domElement","SVGElement","validateElementType","replaceChild","expectedPlaceholder","InPortal","addPropsChannel","nodeProps","OutPortal","placeholderNode","passPropsThroughPortal","propsForTarget","currentPortalNode","createHtmlPortalNode","createSvgPortalNode","BrowserRouter","history","createBrowserHistory","Router","HashRouter","createHashHistory","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","LinkAnchor","innerRef","navigate","_onClick","isModifiedEvent","Link","_ref2$component","__RouterContext","createHref","forwardRefShim$1","forwardRef$1","NavLink","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","exact","isActiveProp","isActive","locationProp","sensitive","styleProp","toLocation","path","pathname","escapedPath","matchPath","classnames","joinClassnames","historyContext","createNamedContext","createNamedContext$1","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","params","isExact","MemoryRouter","createMemoryHistory","Lifecycle","onMount","onUnmount","Prompt","_ref$when","when","method","block","cacheCount","generatePath","compilePath","pretty","Redirect","computedMatch","_ref$push","prevLocation","locationsAreEqual","cache$1","cacheCount$1","_options","_options$exact","_options$strict","_options$sensitive","matched","_compilePath","pathCache","regexp","compilePath$1","Route","context$1","_this$props","addLeadingSlash","stripBasename","basename","createURL","createPath","staticHandler","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","_this$props$basename","_this$props$context","addBasename","_this$props2","_this$props2$basename","_this$props2$context","_this$props2$location","go","goBack","goForward","Switch","withRouter","wrappedComponentRef","remainingProps","useHistory","useLocation","useParams","useRouteMatch","isarray","pathToRegexp","groups","delimiter","optional","partial","asterisk","attachKeys","regexpToRegexp","parts","flags","arrayToRegexp","tokensToRegExp","stringToRegexp","compile","str","tokensToFunction","PATH_REGEXP","res","tokens","defaultDelimiter","escaped","group","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encode","token","segment","j","route","endsWithDelimiter","VerticleButton","CircleArrow","TinyButton","_tweenFunctions2","_detectPassiveEvents2","ScrollUpButton","ToggleScrollUp","Animation","StartPosition","CurrentAnimationTime","StartTime","AnimationFrame","HandleScroll","StopScrollingFrame","ScrollingFrame","HandleClick","hasSupport","ShowAtPosition","TransitionClassName","pageYOffset","_props2","StopPosition","EasingType","AnimationDuration","YPos","scrollTo","MainStyle","WebkitTransition","transitionProperty","SvgStyle","stroke","fill","ToggledStyle","_props3","ContainerClassName","childrenWithProps","role","onKeyPress","viewBox","xmlns","xmlSpace","paddingBottom","doc","docBody","docEl","win","_subscribeUiEvent","_classnames2","_reactAddonsShallowCompare2","TRANSFORM_PROP","canEnableTransforms","scrollDelta","winHeight","Sticky","_x","_x2","_x3","_again","receiver","Function","desc","getter","_get","handleResize","handleScroll","handleScrollStart","delta","stickyTop","stickyBottom","frozen","skipNextScrollEvent","bottomBoundaryTarget","topTarget","subscribers","topBoundary","bottomBoundary","status","pos","activated","getTargetHeight","rect","boundary","getTargetBottom","outerRect","outerElement","innerRect","innerElement","outerY","getTopPosition","getBottomBoundary","shouldFreeze","updateInitialDimension","update","fix","toRelease","deltaHeight","Modernizr","prefixed","csstransforms3d","useRAF","enableScrollInfo","enableResizeInfo","enableTransforms","_classNames","innerStyle","innerZ","outerStyle","translate","outerClasses","activeClass","releasedClass","outer","STATUS_ORIGINAL","STATUS_RELEASED","STATUS_FIXED","__WEBPACK_EXTERNAL_MODULE_13__","__WEBPACK_EXTERNAL_MODULE_38__","__WEBPACK_EXTERNAL_MODULE_39__","__webpack_require__","Browser","SUPPORTED","SUPPORTS_TOUCH","dynamicInputDetection","iOS","MSStream","Store","Selectors","POPPER","TOOLTIP","CONTENT","CIRCLE","ARROW","TOOLTIPPED_EL","CONTROLLER","Defaults","html","animateFill","arrow","arrowSize","trigger","duration","interactive","interactiveBorder","theme","distance","hideOnClick","followCursor","inertia","flipDuration","sticky","stickyDuration","appendTo","touchHold","performance","dynamicTitle","reactInstance","popperOptions","onRequestClose","DefaultsKeys","prefixes","upperProp","_prefix","prefixedProp","checkFn","find","placement","parentSelector","closest","_matches","popper","tooltip","_globals","circle","visibility","defaultMatchSelector","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","_tippy2","hideDelay","hideDuration","onShow","onShown","onHide","onHidden","unmountHTMLWhenHide","propKeys","Tooltip","initTippy","_initTippy","destroyTippy","_destroyTippy","updateTippy","_updateTippy","updateReactDom","_updateReactDom","showTooltip","_showTooltip","hideTooltip","_hideTooltip","updateSettings","_updateSettings","detectPropsChanged","tippy","getPopperElement","tooltipDOM","show","hide","updateForReact","reactDOM","rawTemplate","refData","_find2","settings","_getCorePlacement2","halfPopperWidth","halfPopperHeight","pageWidth","_prefix2","_component2","withTooltip","_hoc2","touchHandler","mousemoveHandler","_hideAllPoppers2","_closest2","_ref$settings","blur","maxTouchPoints","msMaxTouchPoints","_arrow","templateId","getElementById","_getOffsetDistanceInPx2","_data$settings","_getInnerElements3","modifiers","flip","popperInstance","_defer2","subtree","characterData","_mutationObserver","_popper2","els","idCounter","_evaluateSettings2","_getIndividualSettings2","_removeTitle2","_createPopperElement2","handlers","_getEventListenerHandlers2","_createTrigger2","tippyInstance","handleTrigger","handleMouseleave","handleBlur","showDelay","touchWait","clearTimeouts","_show","_isVisible2","_delay","mouseenterTouch","isClick","isNotPersistent","callbacks","handleMousemove","triggerHide","closestTooltippedEl","isOverPopper","isOverEl","isClickTriggered","_cursorIsOutsideInteractiveBorder2","instanceSettings","exclude","_refData$settings","isHideOnClick","isNotCurrentRef","init","_bindEventListeners2","updatePosition","enableEventListeners","_createPopperInstance2","_followCursorHandler2","disableEventListeners","transitionendFired","listenerCallback","_transitionendTimeout","_init2","_findIndex2","_elementIsInViewport2","_triggerReflow2","_modifyClassList2","_getInnerElements5","_applyTransitionDuration2","_noop2","_getArrayOfElements2","_onTransitionEnd2","_mountPopper2","_makeSticky2","_createTooltips2","Tippy","destroyed","shown","newSettings","updatedContent","tooltipContent","customDuration","_getInnerElements","_data$settings2","_duration","list","_onShownFired","_getInnerElements2","isUnmount","_data$settings3","_isLast","storeLength","disableDynamicInputDetection","enableDynamicInputDetection","corePosition","borderWithDistance","exceeds","innerWidth","clientWidth","findIndex","isBrowser","timeoutDuration","longerTimeoutBrowsers","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","host","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","runModifiers","ends","cur","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","toCheck","willChange","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","isNumeric","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","placements","validPlacements","clockwise","basePlacement","shiftvariation","_data$offsets","isVertical","shiftOffsets","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","primary","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","jquery","Utils","PopperUtils","calculateSizeAndPositionDataAndUpdateScrollOffset","cellCount","cellSize","computeMetadataCallback","computeMetadataCallbackProps","nextCellsCount","nextCellSize","nextScrollToIndex","scrollToIndex","updateScrollOffsetForScrollToIndex","CellSizeAndPositionManager","cellSizeGetter","estimatedCellSize","_cellSizeAndPositionData","_lastMeasuredIndex","_lastBatchedIndex","_cellSizeGetter","_cellCount","_estimatedCellSize","lastMeasuredCellSizeAndPosition","getSizeAndPositionOfLastMeasuredCell","_offset","_size","_ref3$align","align","containerSize","targetIndex","datum","getSizeAndPositionOfCell","maxOffset","minOffset","idealOffset","totalSize","getTotalSize","_findNearestCell","middle","_currentOffset","interval","_binarySearch","lastMeasuredIndex","_exponentialSearch","ScalingCellSizeAndPositionManager","_ref$maxScrollSize","maxScrollSize","chrome","webstore","_cellSizeAndPositionManager","_maxScrollSize","configure","getCellCount","getEstimatedCellSize","getLastMeasuredIndex","safeTotalSize","offsetPercentage","_getOffsetPercentage","_safeOffsetToOffset","getUpdatedOffsetForIndex","_offsetToSafeOffset","getVisibleCellRange","resetCell","_ref5","_ref6","_ref7","createCallbackMemoizer","requireAllKeys","cachedIndices","indices","allInitialized","indexChanged","cachedValue","defaultOverscanIndicesGetter","overscanCellsCount","scrollDirection","startIndex","stopIndex","overscanStartIndex","overscanStopIndex","updateScrollIndexHelper","cellSizeAndPositionManager","previousCellsCount","previousCellSize","previousScrollToAlignment","previousScrollToIndex","previousSize","scrollOffset","scrollToAlignment","sizeJustIncreasedFromZero","updateScrollIndexCallback","hasScrollToIndex","defaultCellRangeRenderer","cellCache","cellRenderer","columnSizeAndPositionManager","columnStartIndex","columnStopIndex","deferredMeasurementCache","horizontalOffsetAdjustment","isScrolling","isScrollingOptOut","rowSizeAndPositionManager","rowStartIndex","rowStopIndex","styleCache","verticalOffsetAdjustment","visibleColumnIndices","visibleRowIndices","renderedCells","areOffsetsAdjusted","canCacheStyle","rowIndex","rowDatum","columnIndex","columnDatum","isVisible","cellRendererParams","renderedCell","request","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","cancel","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","raf","caf","cancelAnimationTimeout","frame","requestAnimationTimeout","SCROLL_POSITION_CHANGE_REASONS","Grid","_onGridRenderedMemoizer","_onScrollMemoizer","_deferredInvalidateColumnIndex","_deferredInvalidateRowIndex","_recomputeScrollLeftFlag","_recomputeScrollTopFlag","_horizontalScrollBarSize","_verticalScrollBarSize","_scrollbarPresenceChanged","_renderedColumnStartIndex","_renderedColumnStopIndex","_renderedRowStartIndex","_renderedRowStopIndex","_styleCache","_cellCache","_debounceScrollEndedCallback","_disablePointerEventsTimeoutId","needToResetStyleCache","_invokeOnGridRenderedHelper","onSectionRendered","columnOverscanStartIndex","_columnStartIndex","columnOverscanStopIndex","_columnStopIndex","rowOverscanStartIndex","_rowStartIndex","rowOverscanStopIndex","_rowStopIndex","_setScrollingContainerRef","_scrollingContainer","_onScroll","handleScrollEvent","_wrapSizeGetter","columnWidth","_getEstimatedColumnSize","rowCount","rowHeight","_getEstimatedRowSize","instanceProps","prevColumnWidth","prevRowHeight","prevColumnCount","prevRowCount","prevIsScrolling","prevScrollToColumn","scrollToColumn","prevScrollToRow","scrollToRow","scrollbarSize","scrollbarSizeMeasured","scrollDirectionHorizontal","scrollDirectionVertical","scrollPositionChangeReason","_initialScrollTop","_getCalculatedScrollTop","_initialScrollLeft","_getCalculatedScrollLeft","_ref$alignment","alignment","_ref$columnIndex","_ref$rowIndex","offsetProps","_ref2$scrollLeft","scrollLeftParam","_ref2$scrollTop","scrollTopParam","_debounceScrollEnded","autoHeight","autoWidth","totalRowsHeight","totalColumnsWidth","newState","_invokeOnScrollMemoizer","_ref4$columnIndex","_ref4$rowIndex","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","_props4","getScrollbarSize","_handleInvalidatedGridSize","stateUpdate","_getScrollToPositionStateUpdate","sizeIsBiggerThanZero","_maybeCallOnScrollbarPresenceChange","_props5","_state","columnOrRowCountJustIncreasedFromZero","_props6","autoContainerWidth","containerProps","containerRole","containerStyle","noContentRenderer","_state2","gridStyle","direction","WebkitOverflowScrolling","_resetStyleCache","_calculateChildrenToRender","verticalScrollBarSize","horizontalScrollBarSize","childrenToDisplay","_childrenToDisplay","showNoContentRenderer","onScroll","cellRangeRenderer","overscanColumnCount","overscanIndicesGetter","overscanRowCount","getOffsetAdjustment","overscanColumnIndices","overscanRowIndices","hasFixedHeight","hasFixedWidth","scrollingResetTimeInterval","recomputeGridSize","_props7","scrollHeight","scrollWidth","_onScrollbarPresenceChange","onScrollbarPresenceChange","horizontal","vertical","_ref8","_getScrollLeftForScrollToColumnStateUpdate","_getScrollTopForScrollToRowStateUpdate","maybeStateA","maybeStateB","estimatedColumnSize","estimatedRowSize","_ref9","finalColumn","scrollBarSize","calculatedScrollLeft","finalRow","calculatedScrollTop","ArrowKeyStepper","_ret","_this$_getScrollState","_getScrollState","scrollToColumnPrevious","scrollToRowPrevious","_this$_getScrollState2","_updateScrollState","_onSectionRendered","_getScrollState2","isControlled","onScrollToChange","createDetectElementResize","nonce","_window","requestFrame","cancelFrame","resetTriggers","triggers","__resizeTriggers__","expand","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","animationKeyframes","animationStyle","addResizeListener","elementStyle","head","getElementsByTagName","styleSheet","cssText","createStyles","__animationListener__","removeResizeListener","AutoSizer","defaultHeight","defaultWidth","_onResize","disableHeight","disableWidth","onResize","_parentNode","_height","_width","_style","paddingTop","newHeight","newWidth","_setRef","autoSizer","_autoSizer","_detectElementResize","childParams","CellMeasurer","_measure","_this$props$columnInd","_this$props$rowIndex","_this$_getCellMeasure","_getCellMeasurements","getHeight","getWidth","_maybeMeasureCell","measure","styleWidth","styleHeight","_props$columnIndex","_props$rowIndex","_getCellMeasurements2","invalidateCellSizeAfterRender","__internalCellMeasurerFlag","CellMeasurerCache","_cellHeightCache","_cellWidthCache","_columnWidthCache","_rowHeightCache","_columnCount","_rowCount","_keyMapper","_defaultWidth","_defaultHeight","fixedHeight","fixedWidth","keyMapper","_hasFixedHeight","_hasFixedWidth","_minHeight","_minWidth","defaultKeyMapper","_updateCachedColumnAndRowSizes","columnKey","rowKey","CollectionView","_calculateSizeAndPositionDataOnNextUpdate","_onSectionRenderedMemoizer","_invokeOnSectionRenderedHelper","cellLayoutManager","getLastRenderedIndices","_updateScrollPositionForScrollToCell","scrollToCell","_this$state","scrollPosition","getScrollPositionForCell","cellIndex","_setScrollPosition","_enablePointerEventsAfterDelay","_this$props3","isScrollingChange","_scrollbarSize","_cellLayoutManager$ge","totalHeight","totalWidth","_scrollbarSizeMeasured","_cellLayoutManager$ge2","horizontalOverscanSize","verticalOverscanSize","_lastRenderedCellCount","_lastRenderedCellLayoutManager","calculateSizeAndPositionData","_cellLayoutManager$ge3","cellRenderers","collectionStyle","Section","_indexMap","_indices","SectionManager","sectionSize","_sectionSize","_cellMetadata","_sections","getSections","section","getCellIndices","sectionXStart","sectionXStop","sectionYStart","sectionYStop","sections","sectionX","sectionY","cellMetadatum","addCellIndex","_ref$align","cellOffset","Collection","_lastRenderedCellIndices","_isScrollingChange","_setCollectionViewRef","_collectionView","recomputeCellSizesAndPositions","cellSizeAndPositionGetter","cellMetadata","sectionManager","registerCell","_sectionManager","cellGroupRenderer","getCellMetadata","cellRendererProps","ColumnSizer","_registerChild","columnMaxWidth","columnMinWidth","_registeredChild","safeColumnMinWidth","safeColumnMaxWidth","adjustedWidth","getColumnWidth","registerChild","InfiniteLoader","_loadMoreRowsMemoizer","_onRowsRendered","autoReload","_doStuff","_lastRenderedStartIndex","_lastRenderedStopIndex","onRowsRendered","unloadedRanges","loadMoreRows","unloadedRange","promise","lastRenderedStartIndex","lastRenderedStopIndex","currentIndex","recomputeSize","recomputeRowHeights","forceUpdateReactVirtualizedComponent","isRowLoaded","minimumBatchSize","threshold","rangeStartIndex","rangeStopIndex","potentialStopIndex","_index","firstUnloadedRange","scanForUnloadedRanges","squashedUnloadedRanges","reduced","_loadUnloadedRanges","registeredChild","List","_cellRenderer","rowRenderer","getOffsetForCell","measureAllCells","_ref7$columnIndex","_ref7$rowIndex","scrollToPosition","noRowsRenderer","_GEP","_GEA","IntervalTreeNode","leftPoints","rightPoints","copy","rebuild","intervals","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","lo","reportRange","compareNumbers","compareBegin","compareEnd","pts","leftIntervals","rightIntervals","centerIntervals","IntervalTree","root","insert","weight","queryPoint","queryInterval","tproto","PositionCache","_columnSizeMap","_intervalTree","_leftMap","defaultCellHeight","unmeasuredCellCount","tallestColumnSize","renderCallback","columnSizeMap","columnHeight","Masonry","_invalidateOnUpdateStartIndex","_invalidateOnUpdateStopIndex","_positionCache","_startIndex","_startIndexMemoized","_stopIndex","_stopIndexMemoized","_debounceResetIsScrollingCallback","eventScrollTop","_getEstimatedTotalHeight","_debounceResetIsScrolling","_populatePositionCache","_checkInvalidateOnUpdate","_invokeOnScrollCallback","_invokeOnCellsRenderedCallback","_debounceResetIsScrollingId","cellMeasurerCache","overscanByPixels","rowDirection","estimateTotalHeight","shortestColumnSize","measuredCellCount","batchSize","estimatedColumnCount","_onScrollMemoized","_onCellsRendered","onCellsRendered","cellPositioner","_cellPositioner","_left","_top","setPosition","createCellPositioner","_ref$spacer","spacer","columnHeights","initOrResetDerivedValues","CellMeasurerCacheDecorator","_cellMeasurerCache","_columnIndexOffset","_rowIndexOffset","_params$columnIndexOf","columnIndexOffset","_params$rowIndexOffse","rowIndexOffset","clearAll","MultiGrid","_initialiseProps","fixedColumnCount","fixedRowCount","_maybeCalculateCachedStyles","_deferredMeasurementCacheBottomLeftGrid","_deferredMeasurementCacheBottomRightGrid","_deferredMeasurementCacheTopRightGrid","_bottomLeftGrid","_bottomRightGrid","_topLeftGrid","_topRightGrid","_ref2$columnIndex","_ref2$rowIndex","adjustedColumnIndex","adjustedRowIndex","_leftGridWidth","_topGridHeight","_prepareForRender","_containerOuterStyle","_containerTopStyle","_renderTopLeftGrid","_renderTopRightGrid","_containerBottomStyle","_renderBottomLeftGrid","_renderBottomRightGrid","_getTopGridHeight","leftGridWidth","_getLeftGridWidth","topGridHeight","resetAll","enableFixedColumnScroll","enableFixedRowScroll","styleBottomLeftGrid","styleBottomRightGrid","styleTopLeftGrid","styleTopRightGrid","sizeChange","_lastRenderedHeight","_lastRenderedWidth","leftSizeChange","_lastRenderedColumnWidth","_lastRenderedFixedColumnCount","topSizeChange","_lastRenderedFixedRowCount","_lastRenderedRowHeight","_lastRenderedStyle","_lastRenderedStyleBottomLeftGrid","_bottomLeftGridStyle","_lastRenderedStyleBottomRightGrid","_bottomRightGridStyle","_lastRenderedStyleTopLeftGrid","_topLeftGridStyle","_lastRenderedStyleTopRightGrid","_topRightGridStyle","hideBottomLeftGridScrollbar","showVerticalScrollbar","additionalRowCount","_getBottomGridHeight","gridWidth","bottomLeftGrid","_cellRendererBottomLeftGrid","classNameBottomLeftGrid","_onScrollTop","_bottomLeftGridRef","_rowHeightBottomGrid","_cellRendererBottomRightGrid","classNameBottomRightGrid","_columnWidthRightGrid","_bottomRightGridRef","_getRightGridWidth","classNameTopLeftGrid","_topLeftGridRef","hideTopRightGridScrollbar","showHorizontalScrollbar","additionalColumnCount","additionalHeight","gridHeight","topRightGrid","_cellRendererTopRightGrid","classNameTopRightGrid","_onScrollLeft","_topRightGridRef","_props8","_state3","scrollInfo","_state4","_props9","_state5","ScrollSync","createMultiSort","sortCallback","defaultSortBy","_ref$defaultSortDirec","defaultSortDirection","sortBy","sortDirection","dataKey","defaultCellDataGetter","rowData","defaultCellRenderer","cellData","defaultHeaderRowRenderer","ASC","DESC","SortIndicator","defaultHeaderRenderer","showSortIndicator","defaultRowRenderer","onRowClick","onRowDoubleClick","onRowMouseOut","onRowMouseOver","onRowRightClick","a11yProps","onDoubleClick","onMouseOut","onMouseOver","onContextMenu","Column","cellDataGetter","headerRenderer","Table","scrollbarWidth","_createColumn","_createRow","_ref3$columnIndex","_ref3$rowIndex","_setScrollbarWidth","disableHeader","gridClassName","headerHeight","headerRowRenderer","rowClassName","rowStyle","availableRowsHeight","rowClass","rowStyleObject","_cachedColumnStyles","column","flexStyles","_getFlexStyleForColumn","_getHeaderColumns","onColumnClick","_column$props","columnData","headerClassName","headerStyle","onHeaderClick","_column$props2","disableSort","sortEnabled","ReactVirtualized__Table__sortableHeaderColumn","renderedHeader","headerOnClick","headerOnKeyDown","headerTabIndex","headerAriaSort","headerAriaLabel","newSortDirection","rowGetter","flattenedStyle","_getRowHeight","customStyle","flexValue","msFlex","WebkitFlex","_createHeader","_Grid","mountedInstances","originalBodyPointerEvents","disablePointerEventsTimeoutId","enablePointerEventsIfDisabled","enablePointerEventsAfterDelayCallback","__resetIsScrolling","onScrollWindow","maximumTimeout","enablePointerEventsAfterDelay","__handleWindowScrollEvent","registerScrollListener","unregisterScrollListener","isWindow","getBoundingBox","getDimensions","serverHeight","serverWidth","getPositionOffset","containerElement","elementRect","containerRect","getScrollOffset","_elementRect","_containerRect","scrollY","scrollX","WindowScroller","_positionFromTop","_positionFromLeft","_child","_onChildScroll","_registerResizeListener","_unregisterResizeListener","_scrollLeft","_scrollTop","thisNode","dimensions","prevScrollElement","onChildScroll","__self","__source","keyPrefix","escape","IsSomeRendererActing","only","createContext","createFactory","createRef","lazy"],"mappings":"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","file":"vendor-react.e1fb833a62cd7c5d369c.hashedasset.js","sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:400px;-webkit-perspective:800px;perspective:800px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none}.tippy-popper.html-template{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] [x-arrow]{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 9px}.tippy-popper[x-placement^=top] [x-arrow].arrow-small{border-top:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;bottom:-5px}.tippy-popper[x-placement^=top] [x-arrow].arrow-big{border-top:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;bottom:-10px}.tippy-popper[x-placement^=top] [x-circle]{-webkit-transform-origin:0 33%;transform-origin:0 33%}.tippy-popper[x-placement^=top] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%);opacity:1}.tippy-popper[x-placement^=top] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow]{border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-top:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-top:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow]{border-top:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-top:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-top:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] [x-arrow]{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 9px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-small{border-bottom:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;top:-5px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-big{border-bottom:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;top:-10px}.tippy-popper[x-placement^=bottom] [x-circle]{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%);opacity:1}.tippy-popper[x-placement^=bottom] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-5%);transform:scale(.15) translate(-50%,-5%);opacity:0}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow]{border-bottom:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-bottom:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-bottom:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow]{border-bottom:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-bottom:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-bottom:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] [x-arrow]{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:6px 0}.tippy-popper[x-placement^=left] [x-arrow].arrow-small{border-left:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;right:-5px}.tippy-popper[x-placement^=left] [x-arrow].arrow-big{border-left:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;right:-10px}.tippy-popper[x-placement^=left] [x-circle]{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=left] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow]{border-left:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-left:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-left:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow]{border-left:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-left:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-left:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] [x-arrow]{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:6px 0}.tippy-popper[x-placement^=right] [x-arrow].arrow-small{border-right:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;left:-5px}.tippy-popper[x-placement^=right] [x-arrow].arrow-big{border-right:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;left:-10px}.tippy-popper[x-placement^=right] [x-circle]{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=right] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow]{border-right:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-right:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-right:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow]{border-right:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-right:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-right:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper .tippy-tooltip.transparent-theme{background-color:rgba(0,0,0,.7)}.tippy-popper .tippy-tooltip.transparent-theme[data-animatefill]{background-color:transparent}.tippy-popper .tippy-tooltip.light-theme{color:#26323d;box-shadow:0 4px 20px 4px rgba(0,20,60,.1),0 4px 80px -8px rgba(0,20,60,.2);background-color:#fff}.tippy-popper .tippy-tooltip.light-theme[data-animatefill]{background-color:transparent}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.95rem;padding:.4rem .8rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip--small{padding:.25rem .5rem;font-size:.8rem}.tippy-tooltip--big{padding:.6rem 1.2rem;font-size:1.2rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive]{pointer-events:auto}.tippy-tooltip[data-inertia]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip [x-arrow]{position:absolute;width:0;height:0}.tippy-tooltip [x-circle]{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:130%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;overflow:hidden;transition:all ease}.tippy-tooltip [x-circle]:before{content:\\\"\\\";padding-top:90%;float:left}@media (max-width:450px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/react-tippy/dist/tippy.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:400px;-webkit-perspective:800px;perspective:800px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none}.tippy-popper.html-template{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] [x-arrow]{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 9px}.tippy-popper[x-placement^=top] [x-arrow].arrow-small{border-top:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;bottom:-5px}.tippy-popper[x-placement^=top] [x-arrow].arrow-big{border-top:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;bottom:-10px}.tippy-popper[x-placement^=top] [x-circle]{-webkit-transform-origin:0 33%;transform-origin:0 33%}.tippy-popper[x-placement^=top] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%);opacity:1}.tippy-popper[x-placement^=top] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow]{border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-top:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-top:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow]{border-top:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-top:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-top:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] [x-arrow]{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 9px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-small{border-bottom:5px solid #333;border-right:5px solid transparent;border-left:5px solid transparent;top:-5px}.tippy-popper[x-placement^=bottom] [x-arrow].arrow-big{border-bottom:10px solid #333;border-right:10px solid transparent;border-left:10px solid transparent;top:-10px}.tippy-popper[x-placement^=bottom] [x-circle]{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%);opacity:1}.tippy-popper[x-placement^=bottom] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-5%);transform:scale(.15) translate(-50%,-5%);opacity:0}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow]{border-bottom:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-bottom:5px solid #fff;border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-bottom:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow]{border-bottom:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-bottom:5px solid rgba(0,0,0,.7);border-right:5px solid transparent;border-left:5px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-bottom:10px solid rgba(0,0,0,.7);border-right:10px solid transparent;border-left:10px solid transparent}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade].leave{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].enter{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift].leave{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale].enter{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale].leave{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] [x-arrow]{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:6px 0}.tippy-popper[x-placement^=left] [x-arrow].arrow-small{border-left:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;right:-5px}.tippy-popper[x-placement^=left] [x-arrow].arrow-big{border-left:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;right:-10px}.tippy-popper[x-placement^=left] [x-circle]{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=left] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow]{border-left:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-left:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-left:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow]{border-left:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-left:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-left:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] [x-arrow]{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:6px 0}.tippy-popper[x-placement^=right] [x-arrow].arrow-small{border-right:5px solid #333;border-top:5px solid transparent;border-bottom:5px solid transparent;left:-5px}.tippy-popper[x-placement^=right] [x-arrow].arrow-big{border-right:10px solid #333;border-top:10px solid transparent;border-bottom:10px solid transparent;left:-10px}.tippy-popper[x-placement^=right] [x-circle]{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] [x-circle].enter{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%);opacity:1}.tippy-popper[x-placement^=right] [x-circle].leave{-webkit-transform:scale(.15) translate(-50%,-50%);transform:scale(.15) translate(-50%,-50%);opacity:0}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-circle]{background-color:#fff}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow]{border-right:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-small{border-right:5px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-big{border-right:10px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-circle]{background-color:rgba(0,0,0,.7)}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow]{border-right:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-small{border-right:5px solid rgba(0,0,0,.7);border-top:5px solid transparent;border-bottom:5px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-big{border-right:10px solid rgba(0,0,0,.7);border-top:10px solid transparent;border-bottom:10px solid transparent}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective].enter{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective].leave{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade].leave{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].enter{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift].leave{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale].enter{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale].leave{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper .tippy-tooltip.transparent-theme{background-color:rgba(0,0,0,.7)}.tippy-popper .tippy-tooltip.transparent-theme[data-animatefill]{background-color:transparent}.tippy-popper .tippy-tooltip.light-theme{color:#26323d;box-shadow:0 4px 20px 4px rgba(0,20,60,.1),0 4px 80px -8px rgba(0,20,60,.2);background-color:#fff}.tippy-popper .tippy-tooltip.light-theme[data-animatefill]{background-color:transparent}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.95rem;padding:.4rem .8rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip--small{padding:.25rem .5rem;font-size:.8rem}.tippy-tooltip--big{padding:.6rem 1.2rem;font-size:1.2rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive]{pointer-events:auto}.tippy-tooltip[data-inertia]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip [x-arrow]{position:absolute;width:0;height:0}.tippy-tooltip [x-circle]{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:130%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;overflow:hidden;transition:all ease}.tippy-tooltip [x-circle]:before{content:\\\"\\\";padding-top:90%;float:left}@media (max-width:450px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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 * @providesModule shallowCompare\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Does a shallow comparison for props and state.\n * See ReactComponentWithPureRenderMixin\n * See also https://facebook.github.io/react/docs/shallow-compare.html\n */\nfunction shallowCompare(instance, nextProps, nextState) {\n return (\n !shallowEqual(instance.props, nextProps) ||\n !shallowEqual(instance.state, nextState)\n );\n}\n\nmodule.exports = shallowCompare;\n","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar diff = require(\"diff\");\nvar jsDiff = diff;\nvar DiffType;\n(function (DiffType) {\n DiffType[DiffType[\"DEFAULT\"] = 0] = \"DEFAULT\";\n DiffType[DiffType[\"ADDED\"] = 1] = \"ADDED\";\n DiffType[DiffType[\"REMOVED\"] = 2] = \"REMOVED\";\n})(DiffType = exports.DiffType || (exports.DiffType = {}));\n// See https://github.com/kpdecker/jsdiff/tree/v4.0.1#api for more info on the below JsDiff methods\nvar DiffMethod;\n(function (DiffMethod) {\n DiffMethod[\"CHARS\"] = \"diffChars\";\n DiffMethod[\"WORDS\"] = \"diffWords\";\n DiffMethod[\"WORDS_WITH_SPACE\"] = \"diffWordsWithSpace\";\n DiffMethod[\"LINES\"] = \"diffLines\";\n DiffMethod[\"TRIMMED_LINES\"] = \"diffTrimmedLines\";\n DiffMethod[\"SENTENCES\"] = \"diffSentences\";\n DiffMethod[\"CSS\"] = \"diffCss\";\n})(DiffMethod = exports.DiffMethod || (exports.DiffMethod = {}));\n/**\n * Splits diff text by new line and computes final list of diff lines based on\n * conditions.\n *\n * @param value Diff text from the js diff module.\n */\nvar constructLines = function (value) {\n var lines = value.split('\\n');\n var isAllEmpty = lines.every(function (val) { return !val; });\n if (isAllEmpty) {\n // This is to avoid added an extra new line in the UI.\n if (lines.length === 2) {\n return [];\n }\n lines.pop();\n return lines;\n }\n var lastLine = lines[lines.length - 1];\n var firstLine = lines[0];\n // Remove the first and last element if they are new line character. This is\n // to avoid addition of extra new line in the UI.\n if (!lastLine) {\n lines.pop();\n }\n if (!firstLine) {\n lines.shift();\n }\n return lines;\n};\n/**\n * Computes word diff information in the line.\n * [TODO]: Consider adding options argument for JsDiff text block comparison\n *\n * @param oldValue Old word in the line.\n * @param newValue New word in the line.\n * @param compareMethod JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api\n */\nvar computeDiff = function (oldValue, newValue, compareMethod) {\n if (compareMethod === void 0) { compareMethod = DiffMethod.CHARS; }\n var diffArray = jsDiff[compareMethod](oldValue, newValue);\n var computedDiff = {\n left: [],\n right: [],\n };\n diffArray.forEach(function (_a) {\n var added = _a.added, removed = _a.removed, value = _a.value;\n var diffInformation = {};\n if (added) {\n diffInformation.type = DiffType.ADDED;\n diffInformation.value = value;\n computedDiff.right.push(diffInformation);\n }\n if (removed) {\n diffInformation.type = DiffType.REMOVED;\n diffInformation.value = value;\n computedDiff.left.push(diffInformation);\n }\n if (!removed && !added) {\n diffInformation.type = DiffType.DEFAULT;\n diffInformation.value = value;\n computedDiff.right.push(diffInformation);\n computedDiff.left.push(diffInformation);\n }\n return diffInformation;\n });\n return computedDiff;\n};\n/**\n * [TODO]: Think about moving common left and right value assignment to a\n * common place. Better readability?\n *\n * Computes line wise information based in the js diff information passed. Each\n * line contains information about left and right section. Left side denotes\n * deletion and right side denotes addition.\n *\n * @param oldString Old string to compare.\n * @param newString New string to compare with old string.\n * @param disableWordDiff Flag to enable/disable word diff.\n * @param compareMethod JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api\n * @param linesOffset line number to start counting from\n */\nvar computeLineInformation = function (oldString, newString, disableWordDiff, compareMethod, linesOffset) {\n if (disableWordDiff === void 0) { disableWordDiff = false; }\n if (compareMethod === void 0) { compareMethod = DiffMethod.CHARS; }\n if (linesOffset === void 0) { linesOffset = 0; }\n var diffArray = diff.diffLines(oldString.trimRight(), newString.trimRight(), {\n newlineIsToken: true,\n ignoreWhitespace: false,\n ignoreCase: false,\n });\n var rightLineNumber = linesOffset;\n var leftLineNumber = linesOffset;\n var lineInformation = [];\n var counter = 0;\n var diffLines = [];\n var ignoreDiffIndexes = [];\n var getLineInformation = function (value, diffIndex, added, removed, evaluateOnlyFirstLine) {\n var lines = constructLines(value);\n return lines\n .map(function (line, lineIndex) {\n var left = {};\n var right = {};\n if (ignoreDiffIndexes.includes(diffIndex + \"-\" + lineIndex) ||\n (evaluateOnlyFirstLine && lineIndex !== 0)) {\n return undefined;\n }\n if (added || removed) {\n if (!diffLines.includes(counter)) {\n diffLines.push(counter);\n }\n if (removed) {\n leftLineNumber += 1;\n left.lineNumber = leftLineNumber;\n left.type = DiffType.REMOVED;\n left.value = line || ' ';\n // When the current line is of type REMOVED, check the next item in\n // the diff array whether it is of type ADDED. If true, the current\n // diff will be marked as both REMOVED and ADDED. Meaning, the\n // current line is a modification.\n var nextDiff = diffArray[diffIndex + 1];\n if (nextDiff && nextDiff.added) {\n var nextDiffLines = constructLines(nextDiff.value)[lineIndex];\n if (nextDiffLines) {\n var _a = getLineInformation(nextDiff.value, diffIndex, true, false, true)[0].right, rightValue = _a.value, lineNumber = _a.lineNumber, type = _a.type;\n // When identified as modification, push the next diff to ignore\n // list as the next value will be added in this line computation as\n // right and left values.\n ignoreDiffIndexes.push(diffIndex + 1 + \"-\" + lineIndex);\n right.lineNumber = lineNumber;\n right.type = type;\n // Do word level diff and assign the corresponding values to the\n // left and right diff information object.\n if (disableWordDiff) {\n right.value = rightValue;\n }\n else {\n var computedDiff = computeDiff(line, rightValue, compareMethod);\n right.value = computedDiff.right;\n left.value = computedDiff.left;\n }\n }\n }\n }\n else {\n rightLineNumber += 1;\n right.lineNumber = rightLineNumber;\n right.type = DiffType.ADDED;\n right.value = line;\n }\n }\n else {\n leftLineNumber += 1;\n rightLineNumber += 1;\n left.lineNumber = leftLineNumber;\n left.type = DiffType.DEFAULT;\n left.value = line;\n right.lineNumber = rightLineNumber;\n right.type = DiffType.DEFAULT;\n right.value = line;\n }\n counter += 1;\n return { right: right, left: left };\n })\n .filter(Boolean);\n };\n diffArray.forEach(function (_a, index) {\n var added = _a.added, removed = _a.removed, value = _a.value;\n lineInformation = __spread(lineInformation, getLineInformation(value, index, added, removed));\n });\n return {\n lineInformation: lineInformation,\n diffLines: diffLines,\n };\n};\nexports.computeLineInformation = computeLineInformation;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar classnames_1 = require(\"classnames\");\nvar compute_lines_1 = require(\"./compute-lines\");\nexports.DiffMethod = compute_lines_1.DiffMethod;\nvar styles_1 = require(\"./styles\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar m = require('memoize-one');\nvar memoize = m.default || m;\nvar LineNumberPrefix;\n(function (LineNumberPrefix) {\n LineNumberPrefix[\"LEFT\"] = \"L\";\n LineNumberPrefix[\"RIGHT\"] = \"R\";\n})(LineNumberPrefix = exports.LineNumberPrefix || (exports.LineNumberPrefix = {}));\nvar DiffViewer = /** @class */ (function (_super) {\n __extends(DiffViewer, _super);\n function DiffViewer(props) {\n var _this = _super.call(this, props) || this;\n /**\n * Resets code block expand to the initial stage. Will be exposed to the parent component via\n * refs.\n */\n _this.resetCodeBlocks = function () {\n if (_this.state.expandedBlocks.length > 0) {\n _this.setState({\n expandedBlocks: [],\n });\n return true;\n }\n return false;\n };\n /**\n * Pushes the target expanded code block to the state. During the re-render,\n * this value is used to expand/fold unmodified code.\n */\n _this.onBlockExpand = function (id) {\n var prevState = _this.state.expandedBlocks.slice();\n prevState.push(id);\n _this.setState({\n expandedBlocks: prevState,\n });\n };\n /**\n * Computes final styles for the diff viewer. It combines the default styles with the user\n * supplied overrides. The computed styles are cached with performance in mind.\n *\n * @param styles User supplied style overrides.\n */\n _this.computeStyles = memoize(styles_1.default);\n /**\n * Returns a function with clicked line number in the closure. Returns an no-op function when no\n * onLineNumberClick handler is supplied.\n *\n * @param id Line id of a line.\n */\n _this.onLineNumberClickProxy = function (id) {\n if (_this.props.onLineNumberClick) {\n return function (e) { return _this.props.onLineNumberClick(id, e); };\n }\n return function () { };\n };\n /**\n * Maps over the word diff and constructs the required React elements to show word diff.\n *\n * @param diffArray Word diff information derived from line information.\n * @param renderer Optional renderer to format diff words. Useful for syntax highlighting.\n */\n _this.renderWordDiff = function (diffArray, renderer) {\n return diffArray.map(function (wordDiff, i) {\n var _a;\n return (React.createElement(\"span\", { key: i, className: classnames_1.default(_this.styles.wordDiff, (_a = {},\n _a[_this.styles.wordAdded] = wordDiff.type === compute_lines_1.DiffType.ADDED,\n _a[_this.styles.wordRemoved] = wordDiff.type === compute_lines_1.DiffType.REMOVED,\n _a)) }, renderer ? renderer(wordDiff.value) : wordDiff.value));\n });\n };\n /**\n * Maps over the line diff and constructs the required react elements to show line diff. It calls\n * renderWordDiff when encountering word diff. This takes care of both inline and split view line\n * renders.\n *\n * @param lineNumber Line number of the current line.\n * @param type Type of diff of the current line.\n * @param prefix Unique id to prefix with the line numbers.\n * @param value Content of the line. It can be a string or a word diff array.\n * @param additionalLineNumber Additional line number to be shown. Useful for rendering inline\n * diff view. Right line number will be passed as additionalLineNumber.\n * @param additionalPrefix Similar to prefix but for additional line number.\n */\n _this.renderLine = function (lineNumber, type, prefix, value, additionalLineNumber, additionalPrefix) {\n var _a, _b, _c, _d;\n var lineNumberTemplate = prefix + \"-\" + lineNumber;\n var additionalLineNumberTemplate = additionalPrefix + \"-\" + additionalLineNumber;\n var highlightLine = _this.props.highlightLines.includes(lineNumberTemplate) ||\n _this.props.highlightLines.includes(additionalLineNumberTemplate);\n var added = type === compute_lines_1.DiffType.ADDED;\n var removed = type === compute_lines_1.DiffType.REMOVED;\n var content;\n if (Array.isArray(value)) {\n content = _this.renderWordDiff(value, _this.props.renderContent);\n }\n else if (_this.props.renderContent) {\n content = _this.props.renderContent(value);\n }\n else {\n content = value;\n }\n return (React.createElement(React.Fragment, null,\n !_this.props.hideLineNumbers && (React.createElement(\"td\", { onClick: lineNumber && _this.onLineNumberClickProxy(lineNumberTemplate), className: classnames_1.default(_this.styles.gutter, (_a = {},\n _a[_this.styles.emptyGutter] = !lineNumber,\n _a[_this.styles.diffAdded] = added,\n _a[_this.styles.diffRemoved] = removed,\n _a[_this.styles.highlightedGutter] = highlightLine,\n _a)) },\n React.createElement(\"pre\", { className: _this.styles.lineNumber }, lineNumber))),\n !_this.props.splitView && !_this.props.hideLineNumbers && (React.createElement(\"td\", { onClick: additionalLineNumber &&\n _this.onLineNumberClickProxy(additionalLineNumberTemplate), className: classnames_1.default(_this.styles.gutter, (_b = {},\n _b[_this.styles.emptyGutter] = !additionalLineNumber,\n _b[_this.styles.diffAdded] = added,\n _b[_this.styles.diffRemoved] = removed,\n _b[_this.styles.highlightedGutter] = highlightLine,\n _b)) },\n React.createElement(\"pre\", { className: _this.styles.lineNumber }, additionalLineNumber))),\n React.createElement(\"td\", { className: classnames_1.default(_this.styles.marker, (_c = {},\n _c[_this.styles.emptyLine] = !content,\n _c[_this.styles.diffAdded] = added,\n _c[_this.styles.diffRemoved] = removed,\n _c[_this.styles.highlightedLine] = highlightLine,\n _c)) },\n React.createElement(\"pre\", null,\n added && '+',\n removed && '-')),\n React.createElement(\"td\", { className: classnames_1.default(_this.styles.content, (_d = {},\n _d[_this.styles.emptyLine] = !content,\n _d[_this.styles.diffAdded] = added,\n _d[_this.styles.diffRemoved] = removed,\n _d[_this.styles.highlightedLine] = highlightLine,\n _d)) },\n React.createElement(\"pre\", { className: _this.styles.contentText }, content))));\n };\n /**\n * Generates lines for split view.\n *\n * @param obj Line diff information.\n * @param obj.left Life diff information for the left pane of the split view.\n * @param obj.right Life diff information for the right pane of the split view.\n * @param index React key for the lines.\n */\n _this.renderSplitView = function (_a, index) {\n var left = _a.left, right = _a.right;\n return (React.createElement(\"tr\", { key: index, className: _this.styles.line },\n _this.renderLine(left.lineNumber, left.type, LineNumberPrefix.LEFT, left.value),\n _this.renderLine(right.lineNumber, right.type, LineNumberPrefix.RIGHT, right.value)));\n };\n /**\n * Generates lines for inline view.\n *\n * @param obj Line diff information.\n * @param obj.left Life diff information for the added section of the inline view.\n * @param obj.right Life diff information for the removed section of the inline view.\n * @param index React key for the lines.\n */\n _this.renderInlineView = function (_a, index) {\n var left = _a.left, right = _a.right;\n var content;\n if (left.type === compute_lines_1.DiffType.REMOVED && right.type === compute_lines_1.DiffType.ADDED) {\n return (React.createElement(React.Fragment, { key: index },\n React.createElement(\"tr\", { className: _this.styles.line }, _this.renderLine(left.lineNumber, left.type, LineNumberPrefix.LEFT, left.value, null)),\n React.createElement(\"tr\", { className: _this.styles.line }, _this.renderLine(null, right.type, LineNumberPrefix.RIGHT, right.value, right.lineNumber))));\n }\n if (left.type === compute_lines_1.DiffType.REMOVED) {\n content = _this.renderLine(left.lineNumber, left.type, LineNumberPrefix.LEFT, left.value, null);\n }\n if (left.type === compute_lines_1.DiffType.DEFAULT) {\n content = _this.renderLine(left.lineNumber, left.type, LineNumberPrefix.LEFT, left.value, right.lineNumber, LineNumberPrefix.RIGHT);\n }\n if (right.type === compute_lines_1.DiffType.ADDED) {\n content = _this.renderLine(null, right.type, LineNumberPrefix.RIGHT, right.value, right.lineNumber);\n }\n return (React.createElement(\"tr\", { key: index, className: _this.styles.line }, content));\n };\n /**\n * Returns a function with clicked block number in the closure.\n *\n * @param id Cold fold block id.\n */\n _this.onBlockClickProxy = function (id) { return function () {\n return _this.onBlockExpand(id);\n }; };\n /**\n * Generates cold fold block. It also uses the custom message renderer when available to show\n * cold fold messages.\n *\n * @param num Number of skipped lines between two blocks.\n * @param blockNumber Code fold block id.\n * @param leftBlockLineNumber First left line number after the current code fold block.\n * @param rightBlockLineNumber First right line number after the current code fold block.\n */\n _this.renderSkippedLineIndicator = function (num, blockNumber, leftBlockLineNumber, rightBlockLineNumber) {\n var _a;\n var _b = _this.props, hideLineNumbers = _b.hideLineNumbers, splitView = _b.splitView;\n var message = _this.props.codeFoldMessageRenderer ? (_this.props.codeFoldMessageRenderer(num, leftBlockLineNumber, rightBlockLineNumber)) : (React.createElement(\"pre\", { className: _this.styles.codeFoldContent },\n \"Expand \",\n num,\n \" lines ...\"));\n var content = (React.createElement(\"td\", null,\n React.createElement(\"a\", { onClick: _this.onBlockClickProxy(blockNumber), tabIndex: 0 }, message)));\n var isUnifiedViewWithoutLineNumbers = !splitView && !hideLineNumbers;\n return (React.createElement(\"tr\", { key: leftBlockLineNumber + \"-\" + rightBlockLineNumber, className: _this.styles.codeFold },\n !hideLineNumbers && React.createElement(\"td\", { className: _this.styles.codeFoldGutter }),\n React.createElement(\"td\", { className: classnames_1.default((_a = {},\n _a[_this.styles.codeFoldGutter] = isUnifiedViewWithoutLineNumbers,\n _a)) }),\n isUnifiedViewWithoutLineNumbers ? (React.createElement(React.Fragment, null,\n React.createElement(\"td\", null),\n content)) : (React.createElement(React.Fragment, null,\n content,\n React.createElement(\"td\", null))),\n React.createElement(\"td\", null),\n React.createElement(\"td\", null)));\n };\n /**\n * Generates the entire diff view.\n */\n _this.renderDiff = function () {\n var _a = _this.props, oldValue = _a.oldValue, newValue = _a.newValue, splitView = _a.splitView, disableWordDiff = _a.disableWordDiff, compareMethod = _a.compareMethod, linesOffset = _a.linesOffset;\n var _b = compute_lines_1.computeLineInformation(oldValue, newValue, disableWordDiff, compareMethod, linesOffset), lineInformation = _b.lineInformation, diffLines = _b.diffLines;\n var extraLines = _this.props.extraLinesSurroundingDiff < 0\n ? 0\n : _this.props.extraLinesSurroundingDiff;\n var skippedLines = [];\n return lineInformation.map(function (line, i) {\n var diffBlockStart = diffLines[0];\n var currentPosition = diffBlockStart - i;\n if (_this.props.showDiffOnly) {\n if (currentPosition === -extraLines) {\n skippedLines = [];\n diffLines.shift();\n }\n if (line.left.type === compute_lines_1.DiffType.DEFAULT &&\n (currentPosition > extraLines ||\n typeof diffBlockStart === 'undefined') &&\n !_this.state.expandedBlocks.includes(diffBlockStart)) {\n skippedLines.push(i + 1);\n if (i === lineInformation.length - 1 && skippedLines.length > 1) {\n return _this.renderSkippedLineIndicator(skippedLines.length, diffBlockStart, line.left.lineNumber, line.right.lineNumber);\n }\n return null;\n }\n }\n var diffNodes = splitView\n ? _this.renderSplitView(line, i)\n : _this.renderInlineView(line, i);\n if (currentPosition === extraLines && skippedLines.length > 0) {\n var length_1 = skippedLines.length;\n skippedLines = [];\n return (React.createElement(React.Fragment, { key: i },\n _this.renderSkippedLineIndicator(length_1, diffBlockStart, line.left.lineNumber, line.right.lineNumber),\n diffNodes));\n }\n return diffNodes;\n });\n };\n _this.render = function () {\n var _a;\n var _b = _this.props, oldValue = _b.oldValue, newValue = _b.newValue, useDarkTheme = _b.useDarkTheme, leftTitle = _b.leftTitle, rightTitle = _b.rightTitle, splitView = _b.splitView, hideLineNumbers = _b.hideLineNumbers;\n if (typeof oldValue !== 'string' || typeof newValue !== 'string') {\n throw Error('\"oldValue\" and \"newValue\" should be strings');\n }\n _this.styles = _this.computeStyles(_this.props.styles, useDarkTheme);\n var nodes = _this.renderDiff();\n var colSpanOnSplitView = hideLineNumbers ? 2 : 3;\n var colSpanOnInlineView = hideLineNumbers ? 2 : 4;\n var title = (leftTitle || rightTitle) && (React.createElement(\"tr\", null,\n React.createElement(\"td\", { colSpan: splitView ? colSpanOnSplitView : colSpanOnInlineView, className: _this.styles.titleBlock },\n React.createElement(\"pre\", { className: _this.styles.contentText }, leftTitle)),\n splitView && (React.createElement(\"td\", { colSpan: colSpanOnSplitView, className: _this.styles.titleBlock },\n React.createElement(\"pre\", { className: _this.styles.contentText }, rightTitle)))));\n return (React.createElement(\"table\", { className: classnames_1.default(_this.styles.diffContainer, (_a = {},\n _a[_this.styles.splitView] = splitView,\n _a)) },\n React.createElement(\"tbody\", null,\n title,\n nodes)));\n };\n _this.state = {\n expandedBlocks: [],\n };\n return _this;\n }\n DiffViewer.defaultProps = {\n oldValue: '',\n newValue: '',\n splitView: true,\n highlightLines: [],\n disableWordDiff: false,\n compareMethod: compute_lines_1.DiffMethod.CHARS,\n styles: {},\n hideLineNumbers: false,\n extraLinesSurroundingDiff: 3,\n showDiffOnly: true,\n useDarkTheme: false,\n linesOffset: 0,\n };\n DiffViewer.propTypes = {\n oldValue: PropTypes.string.isRequired,\n newValue: PropTypes.string.isRequired,\n splitView: PropTypes.bool,\n disableWordDiff: PropTypes.bool,\n compareMethod: PropTypes.oneOf(Object.values(compute_lines_1.DiffMethod)),\n renderContent: PropTypes.func,\n onLineNumberClick: PropTypes.func,\n extraLinesSurroundingDiff: PropTypes.number,\n styles: PropTypes.object,\n hideLineNumbers: PropTypes.bool,\n showDiffOnly: PropTypes.bool,\n highlightLines: PropTypes.arrayOf(PropTypes.string),\n leftTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n rightTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n linesOffset: PropTypes.number,\n };\n return DiffViewer;\n}(React.Component));\nexports.default = DiffViewer;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar emotion_1 = require(\"emotion\");\nexports.default = (function (styleOverride, useDarkTheme) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (useDarkTheme === void 0) { useDarkTheme = false; }\n var _h = styleOverride.variables, overrideVariables = _h === void 0 ? {} : _h, styles = __rest(styleOverride, [\"variables\"]);\n var themeVariables = {\n light: __assign({\n diffViewerBackground: '#fff',\n diffViewerColor: '212529',\n addedBackground: '#e6ffed',\n addedColor: '#24292e',\n removedBackground: '#ffeef0',\n removedColor: '#24292e',\n wordAddedBackground: '#acf2bd',\n wordRemovedBackground: '#fdb8c0',\n addedGutterBackground: '#cdffd8',\n removedGutterBackground: '#ffdce0',\n gutterBackground: '#f7f7f7',\n gutterBackgroundDark: '#f3f1f1',\n highlightBackground: '#fffbdd',\n highlightGutterBackground: '#fff5b1',\n codeFoldGutterBackground: '#dbedff',\n codeFoldBackground: '#f1f8ff',\n emptyLineBackground: '#fafbfc',\n gutterColor: '#212529',\n addedGutterColor: '#212529',\n removedGutterColor: '#212529',\n codeFoldContentColor: '#212529',\n diffViewerTitleBackground: '#fafbfc',\n diffViewerTitleColor: '#212529',\n diffViewerTitleBorderColor: '#eee',\n }, (overrideVariables.light || {})),\n dark: __assign({\n diffViewerBackground: '#2e303c',\n diffViewerColor: '#FFF',\n addedBackground: '#044B53',\n addedColor: 'white',\n removedBackground: '#632F34',\n removedColor: 'white',\n wordAddedBackground: '#055d67',\n wordRemovedBackground: '#7d383f',\n addedGutterBackground: '#034148',\n removedGutterBackground: '#632b30',\n gutterBackground: '#2c2f3a',\n gutterBackgroundDark: '#262933',\n highlightBackground: '#2a3967',\n highlightGutterBackground: '#2d4077',\n codeFoldGutterBackground: '#21232b',\n codeFoldBackground: '#262831',\n emptyLineBackground: '#363946',\n gutterColor: '#464c67',\n addedGutterColor: '#8c8c8c',\n removedGutterColor: '#8c8c8c',\n codeFoldContentColor: '#555a7b',\n diffViewerTitleBackground: '#2f323e',\n diffViewerTitleColor: '#555a7b',\n diffViewerTitleBorderColor: '#353846',\n }, (overrideVariables.dark || {})),\n };\n var variables = useDarkTheme ? themeVariables.dark : themeVariables.light;\n var content = emotion_1.css({\n width: '100%',\n label: 'content',\n });\n var splitView = emotion_1.css((_a = {},\n _a[\".\" + content] = {\n width: '50%',\n },\n _a.label = 'split-view',\n _a));\n var diffContainer = emotion_1.css({\n width: '100%',\n background: variables.diffViewerBackground,\n pre: {\n margin: 0,\n whiteSpace: 'pre-wrap',\n lineHeight: '25px',\n },\n label: 'diff-container',\n borderCollapse: 'collapse',\n });\n var codeFoldContent = emotion_1.css({\n color: variables.codeFoldContentColor,\n label: 'code-fold-content',\n });\n var contentText = emotion_1.css({\n color: variables.diffViewerColor,\n label: 'content-text',\n });\n var titleBlock = emotion_1.css((_b = {\n background: variables.diffViewerTitleBackground,\n padding: 10,\n borderBottom: \"1px solid \" + variables.diffViewerTitleBorderColor,\n label: 'title-block',\n ':last-child': {\n borderLeft: \"1px solid \" + variables.diffViewerTitleBorderColor,\n }\n },\n _b[\".\" + contentText] = {\n color: variables.diffViewerTitleColor,\n },\n _b));\n var lineNumber = emotion_1.css({\n color: variables.gutterColor,\n label: 'line-number',\n });\n var diffRemoved = emotion_1.css((_c = {\n background: variables.removedBackground,\n color: variables.removedColor,\n pre: {\n color: variables.removedColor,\n }\n },\n _c[\".\" + lineNumber] = {\n color: variables.removedGutterColor,\n },\n _c.label = 'diff-removed',\n _c));\n var diffAdded = emotion_1.css((_d = {\n background: variables.addedBackground,\n color: variables.addedColor,\n pre: {\n color: variables.addedColor,\n }\n },\n _d[\".\" + lineNumber] = {\n color: variables.addedGutterColor,\n },\n _d.label = 'diff-added',\n _d));\n var wordDiff = emotion_1.css({\n padding: 2,\n display: 'inline-flex',\n borderRadius: 1,\n label: 'word-diff',\n });\n var wordAdded = emotion_1.css({\n background: variables.wordAddedBackground,\n label: 'word-added',\n });\n var wordRemoved = emotion_1.css({\n background: variables.wordRemovedBackground,\n label: 'word-removed',\n });\n var codeFoldGutter = emotion_1.css({\n backgroundColor: variables.codeFoldGutterBackground,\n label: 'code-fold-gutter',\n });\n var codeFold = emotion_1.css({\n backgroundColor: variables.codeFoldBackground,\n height: 40,\n fontSize: 14,\n fontWeight: 700,\n label: 'code-fold',\n a: {\n textDecoration: 'underline !important',\n cursor: 'pointer',\n pre: {\n display: 'inline',\n },\n },\n });\n var emptyLine = emotion_1.css({\n backgroundColor: variables.emptyLineBackground,\n label: 'empty-line',\n });\n var marker = emotion_1.css((_e = {\n width: 25,\n paddingLeft: 10,\n paddingRight: 10,\n userSelect: 'none',\n label: 'marker'\n },\n _e[\"&.\" + diffAdded] = {\n pre: {\n color: variables.addedColor,\n },\n },\n _e[\"&.\" + diffRemoved] = {\n pre: {\n color: variables.removedColor,\n },\n },\n _e));\n var highlightedLine = emotion_1.css((_f = {\n background: variables.highlightBackground,\n label: 'highlighted-line'\n },\n _f[\".\" + wordAdded + \", .\" + wordRemoved] = {\n backgroundColor: 'initial',\n },\n _f));\n var highlightedGutter = emotion_1.css({\n label: 'highlighted-gutter',\n });\n var gutter = emotion_1.css((_g = {\n userSelect: 'none',\n minWidth: 50,\n padding: '0 10px',\n label: 'gutter',\n textAlign: 'right',\n background: variables.gutterBackground,\n '&:hover': {\n cursor: 'pointer',\n background: variables.gutterBackgroundDark,\n pre: {\n opacity: 1,\n },\n },\n pre: {\n opacity: 0.5,\n }\n },\n _g[\"&.\" + diffAdded] = {\n background: variables.addedGutterBackground,\n },\n _g[\"&.\" + diffRemoved] = {\n background: variables.removedGutterBackground,\n },\n _g[\"&.\" + highlightedGutter] = {\n background: variables.highlightGutterBackground,\n '&:hover': {\n background: variables.highlightGutterBackground,\n },\n },\n _g));\n var emptyGutter = emotion_1.css({\n '&:hover': {\n background: variables.gutterBackground,\n cursor: 'initial',\n },\n label: 'empty-gutter',\n });\n var line = emotion_1.css({\n verticalAlign: 'baseline',\n label: 'line',\n });\n var defaultStyles = {\n diffContainer: diffContainer,\n diffRemoved: diffRemoved,\n diffAdded: diffAdded,\n splitView: splitView,\n marker: marker,\n highlightedGutter: highlightedGutter,\n highlightedLine: highlightedLine,\n gutter: gutter,\n line: line,\n wordDiff: wordDiff,\n wordAdded: wordAdded,\n wordRemoved: wordRemoved,\n codeFoldGutter: codeFoldGutter,\n codeFold: codeFold,\n emptyGutter: emptyGutter,\n emptyLine: emptyLine,\n lineNumber: lineNumber,\n contentText: contentText,\n content: content,\n codeFoldContent: codeFoldContent,\n titleBlock: titleBlock,\n };\n var computerOverrideStyles = Object.keys(styles).reduce(function (acc, key) {\n var _a;\n return (__assign({}, acc, (_a = {},\n _a[key] = emotion_1.css(styles[key]),\n _a)));\n }, {});\n return Object.keys(defaultStyles).reduce(function (acc, key) {\n var _a;\n return (__assign({}, acc, (_a = {},\n _a[key] = computerOverrideStyles[key]\n ? emotion_1.cx(defaultStyles[key], computerOverrideStyles[key])\n : defaultStyles[key],\n _a)));\n }, {});\n});\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// cheap lodash replacements\nexport function memoize(fn) {\n var result = null;\n\n var memoized = function memoized() {\n if (result == null) {\n result = fn();\n }\n\n return result;\n };\n\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\nexport function union(itemsA, itemsB) {\n var set = new Set();\n\n var insertItem = function insertItem(item) {\n return set.add(item);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n set.forEach(function (key) {\n return result.push(key);\n });\n return result;\n}","function _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\nimport { union, without } from './utils/js_utils';\n\nvar EnterLeaveCounter =\n/*#__PURE__*/\nfunction () {\n function EnterLeaveCounter(isNodeInDocument) {\n _classCallCheck(this, EnterLeaveCounter);\n\n this.entered = [];\n this.isNodeInDocument = isNodeInDocument;\n }\n\n _createClass(EnterLeaveCounter, [{\n key: \"enter\",\n value: function enter(enteringNode) {\n var _this = this;\n\n var previousLength = this.entered.length;\n\n var isNodeEntered = function isNodeEntered(node) {\n return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));\n };\n\n this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);\n return previousLength === 0 && this.entered.length > 0;\n }\n }, {\n key: \"leave\",\n value: function leave(leavingNode) {\n var previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.entered = [];\n }\n }]);\n\n return EnterLeaveCounter;\n}();\n\nexport { EnterLeaveCounter as default };","import { memoize } from './utils/js_utils';\nexport var isFirefox = memoize(function () {\n return /firefox/i.test(navigator.userAgent);\n});\nexport var isSafari = memoize(function () {\n return Boolean(window.safari);\n});","function _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\nvar MonotonicInterpolant =\n/*#__PURE__*/\nfunction () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\n\n var length = xs.length; // Rearrange xs and ys so that xs is sorted\n\n var indexes = [];\n\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n\n indexes.sort(function (a, b) {\n return xs[a] < xs[b] ? -1 : 1;\n }); // Get consecutive differences and slopes\n\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx;\n var dy;\n\n for (var _i = 0; _i < length - 1; _i++) {\n dx = xs[_i + 1] - xs[_i];\n dy = ys[_i + 1] - ys[_i];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n } // Get degree-1 coefficients\n\n\n var c1s = [ms[0]];\n\n for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {\n var m2 = ms[_i2];\n var mNext = ms[_i2 + 1];\n\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[_i2];\n var dxNext = dxs[_i2 + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n\n c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients\n\n var c2s = [];\n var c3s = [];\n var m;\n\n for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {\n m = ms[_i3];\n var c1 = c1s[_i3];\n var invDx = 1 / dxs[_i3];\n\n var _common = c1 + c1s[_i3 + 1] - m - m;\n\n c2s.push((m - c1 - _common) * invDx);\n c3s.push(_common * invDx * invDx);\n }\n\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n\n _createClass(MonotonicInterpolant, [{\n key: \"interpolate\",\n value: function interpolate(x) {\n var xs = this.xs,\n ys = this.ys,\n c1s = this.c1s,\n c2s = this.c2s,\n c3s = this.c3s; // The rightmost point in the dataset should give an exact result\n\n var i = xs.length - 1;\n\n if (x === xs[i]) {\n return ys[i];\n } // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\n\n var low = 0;\n var high = c3s.length - 1;\n var mid;\n\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n\n i = Math.max(0, high); // Interpolate\n\n var diff = x - xs[i];\n var diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n }\n }]);\n\n return MonotonicInterpolant;\n}();\n\nexport { MonotonicInterpolant as default };","import { isSafari, isFirefox } from './BrowserDetector';\nimport MonotonicInterpolant from './MonotonicInterpolant';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return null;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\n\nfunction isImageNode(node) {\n return node.nodeName === 'IMG' && (isFirefox() || !document.documentElement.contains(node));\n}\n\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers\n\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n\n return {\n dragPreviewWidth: dragPreviewWidth,\n dragPreviewHeight: dragPreviewHeight\n };\n}\n\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n var isImage = isImageNode(dragPreview);\n var dragPreviewNode = isImage ? sourceNode : dragPreview;\n var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n var offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n var sourceWidth = sourceNode.offsetWidth,\n sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX,\n anchorY = anchorPoint.anchorY;\n\n var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),\n dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,\n dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;\n\n var calculateYOffset = function calculateYOffset() {\n var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top\n offsetFromDragPreview.y, // Align at the center\n offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug\n\n if (isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n\n return y;\n };\n\n var calculateXOffset = function calculateXOffset() {\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left\n offsetFromDragPreview.x, // Align at the center\n offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n return interpolantX.interpolate(anchorX);\n }; // Force offsets if specified in the options.\n\n\n var offsetX = offsetPoint.offsetX,\n offsetY = offsetPoint.offsetY;\n var isManualOffsetX = offsetX === 0 || offsetX;\n var isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}","export var FILE = '__NATIVE_FILE__';\nexport var URL = '__NATIVE_URL__';\nexport var TEXT = '__NATIVE_TEXT__';","var _nativeTypesConfig;\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\nimport * as NativeTypes from '../NativeTypes';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer';\nexport var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n exposeProperties: {\n files: function files(dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n },\n items: function items(dataTransfer) {\n return dataTransfer.items;\n }\n },\n matchesTypes: ['Files']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperties: {\n urls: function urls(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n }\n },\n matchesTypes: ['Url', 'text/uri-list']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n exposeProperties: {\n text: function text(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n }\n },\n matchesTypes: ['Text', 'text/plain']\n}), _nativeTypesConfig);","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n return resultSoFar || dataTransfer.getData(typeToTry);\n }, '');\n return result != null ? result : defaultValue;\n}","function _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\nexport var NativeDragSource =\n/*#__PURE__*/\nfunction () {\n function NativeDragSource(config) {\n _classCallCheck(this, NativeDragSource);\n\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n\n _createClass(NativeDragSource, [{\n key: \"initializeExposedProperties\",\n value: function initializeExposedProperties() {\n var _this = this;\n\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n Object.defineProperty(_this.item, property, {\n configurable: true,\n enumerable: true,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn(\"Browser doesn't allow reading \\\"\".concat(property, \"\\\" until the drop event.\"));\n return null;\n }\n });\n });\n }\n }, {\n key: \"loadDataTransfer\",\n value: function loadDataTransfer(dataTransfer) {\n var _this2 = this;\n\n if (dataTransfer) {\n var newProperties = {};\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n newProperties[property] = {\n value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n return true;\n }\n }, {\n key: \"beginDrag\",\n value: function beginDrag() {\n return this.item;\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {// empty\n }\n }]);\n\n return NativeDragSource;\n}();","import { nativeTypesConfig } from './nativeTypesConfig';\nimport { NativeDragSource } from './NativeDragSource';\nexport function createNativeDragSource(type, dataTransfer) {\n var result = new NativeDragSource(nativeTypesConfig[type]);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n return matchesTypes.some(function (t) {\n return dataTransferTypes.indexOf(t) > -1;\n });\n })[0] || null;\n}","function _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\nexport var OptionsReader =\n/*#__PURE__*/\nfunction () {\n function OptionsReader(globalContext) {\n _classCallCheck(this, OptionsReader);\n\n this.globalContext = globalContext;\n }\n\n _createClass(OptionsReader, [{\n key: \"window\",\n get: function get() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }]);\n\n return OptionsReader;\n}();","function 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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EnterLeaveCounter from './EnterLeaveCounter';\nimport { isFirefox } from './BrowserDetector';\nimport { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources';\nimport * as NativeTypes from './NativeTypes';\nimport { OptionsReader } from './OptionsReader';\n\nvar HTML5Backend =\n/*#__PURE__*/\nfunction () {\n function HTML5Backend(manager, globalContext) {\n var _this = this;\n\n _classCallCheck(this, HTML5Backend);\n\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.sourceNodes = new Map();\n this.sourceNodeOptions = new Map();\n this.dragStartSourceIds = null;\n this.dropTargetIds = [];\n this.dragEnterTargetIds = [];\n this.currentNativeSource = null;\n this.currentNativeHandle = null;\n this.currentDragSourceNode = null;\n this.altKeyPressed = false;\n this.mouseMoveTimeoutTimer = null;\n this.asyncEndDragFrameId = null;\n this.dragOverTargetIds = null;\n\n this.getSourceClientOffset = function (sourceId) {\n return getNodeClientOffset(_this.sourceNodes.get(sourceId));\n };\n\n this.endDragNativeItem = function () {\n if (!_this.isDraggingNativeItem()) {\n return;\n }\n\n _this.actions.endDrag();\n\n _this.registry.removeSource(_this.currentNativeHandle);\n\n _this.currentNativeHandle = null;\n _this.currentNativeSource = null;\n };\n\n this.isNodeInDocument = function (node) {\n // Check the node either in the main document or in the current context\n return _this.document && _this.document.body && document.body.contains(node);\n };\n\n this.endDragIfSourceWasRemovedFromDOM = function () {\n var node = _this.currentDragSourceNode;\n\n if (_this.isNodeInDocument(node)) {\n return;\n }\n\n if (_this.clearCurrentDragSourceNode()) {\n _this.actions.endDrag();\n }\n };\n\n this.handleTopDragStartCapture = function () {\n _this.clearCurrentDragSourceNode();\n\n _this.dragStartSourceIds = [];\n };\n\n this.handleTopDragStart = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n\n var dragStartSourceIds = _this.dragStartSourceIds;\n _this.dragStartSourceIds = null;\n var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died\n\n if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n } // Don't publish the source just yet (see why below)\n\n\n _this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: _this.getSourceClientOffset,\n clientOffset: clientOffset\n });\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (_this.monitor.isDragging()) {\n if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n var sourceId = _this.monitor.getSourceId();\n\n var sourceNode = _this.sourceNodes.get(sourceId);\n\n var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;\n\n if (dragPreview) {\n var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),\n anchorX = _this$getCurrentSourc.anchorX,\n anchorY = _this$getCurrentSourc.anchorY,\n offsetX = _this$getCurrentSourc.offsetX,\n offsetY = _this$getCurrentSourc.offsetY;\n\n var anchorPoint = {\n anchorX: anchorX,\n anchorY: anchorY\n };\n var offsetPoint = {\n offsetX: offsetX,\n offsetY: offsetY\n };\n var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n\n try {\n // Firefox won't drag without setting data\n dataTransfer.setData('application/json', {});\n } catch (err) {} // IE doesn't support MIME types in setData\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n\n\n _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?\n\n\n var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),\n captureDraggingState = _this$getCurrentSourc2.captureDraggingState;\n\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(function () {\n return _this.actions.publishDragSource();\n }, 0);\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n _this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n _this.beginDragNativeItem(nativeType);\n } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in\n // dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n };\n\n this.handleTopDragEndCapture = function () {\n if (_this.clearCurrentDragSourceNode()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n _this.actions.endDrag();\n }\n };\n\n this.handleTopDragEnterCapture = function (e) {\n _this.dragEnterTargetIds = [];\n\n var isFirstEnter = _this.enterLeaveCounter.enter(e.target);\n\n if (!isFirstEnter || _this.monitor.isDragging()) {\n return;\n }\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n _this.beginDragNativeItem(nativeType, dataTransfer);\n }\n };\n\n this.handleTopDragEnter = function (e) {\n var dragEnterTargetIds = _this.dragEnterTargetIds;\n _this.dragEnterTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n\n if (!isFirefox()) {\n // Don't emit hover in `dragenter` on Firefox due to an edge case.\n // If the target changes position as the result of `dragenter`, Firefox\n // will still happily dispatch `dragover` despite target being no longer\n // there. The easy solution is to only fire `hover` in `dragover` on FF.\n _this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n }\n };\n\n this.handleTopDragOverCapture = function () {\n _this.dragOverTargetIds = [];\n };\n\n this.handleTopDragOver = function (e) {\n var dragOverTargetIds = _this.dragOverTargetIds;\n _this.dragOverTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: getEventClientOffset(e)\n });\n\n var canDrop = (dragOverTargetIds || []).some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n } else if (_this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n } else {\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n };\n\n this.handleTopDragLeaveCapture = function (e) {\n if (_this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n\n var isLastLeave = _this.enterLeaveCounter.leave(e.target);\n\n if (!isLastLeave) {\n return;\n }\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n }\n };\n\n this.handleTopDropCapture = function (e) {\n _this.dropTargetIds = [];\n e.preventDefault();\n\n if (_this.isDraggingNativeItem()) {\n _this.currentNativeSource.loadDataTransfer(e.dataTransfer);\n }\n\n _this.enterLeaveCounter.reset();\n };\n\n this.handleTopDrop = function (e) {\n var dropTargetIds = _this.dropTargetIds;\n _this.dropTargetIds = [];\n\n _this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n\n _this.actions.drop({\n dropEffect: _this.getCurrentDropEffect()\n });\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n } else {\n _this.endDragIfSourceWasRemovedFromDOM();\n }\n };\n\n this.handleSelectStart = function (e) {\n var target = e.target; // Only IE requires us to explicitly say\n // we want drag drop operation to start\n\n if (typeof target.dragDrop !== 'function') {\n return;\n } // Inputs and textareas should be selectable\n\n\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n } // For other targets, ask IE\n // to enable drag and drop\n\n\n e.preventDefault();\n target.dragDrop();\n };\n\n this.options = new OptionsReader(globalContext);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n } // public for test\n\n\n _createClass(HTML5Backend, [{\n key: \"setup\",\n value: function setup() {\n if (this.window === undefined) {\n return;\n }\n\n if (this.window.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n\n this.window.__isReactDndBackendSetUp = true;\n this.addEventListeners(this.window);\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n if (this.window === undefined) {\n return;\n }\n\n this.window.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.window);\n this.clearCurrentDragSourceNode();\n\n if (this.asyncEndDragFrameId) {\n this.window.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this2 = this;\n\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this2.sourcePreviewNodes.delete(sourceId);\n\n _this2.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node, options) {\n var _this3 = this;\n\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n\n var handleDragStart = function handleDragStart(e) {\n return _this3.handleDragStart(e, sourceId);\n };\n\n var handleSelectStart = function handleSelectStart(e) {\n return _this3.handleSelectStart(e);\n };\n\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return function () {\n _this3.sourceNodes.delete(sourceId);\n\n _this3.sourceNodeOptions.delete(sourceId);\n\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n var handleDragEnter = function handleDragEnter(e) {\n return _this4.handleDragEnter(e, targetId);\n };\n\n var handleDragOver = function handleDragOver(e) {\n return _this4.handleDragOver(e, targetId);\n };\n\n var handleDrop = function handleDrop(e) {\n return _this4.handleDrop(e, targetId);\n };\n\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return function () {\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"getCurrentSourceNodeOptions\",\n value: function getCurrentSourceNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n }, {\n key: \"getCurrentDropEffect\",\n value: function getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n\n return this.getCurrentSourceNodeOptions().dropEffect;\n }\n }, {\n key: \"getCurrentSourcePreviewNodeOptions\",\n value: function getCurrentSourcePreviewNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n }, {\n key: \"isDraggingNativeItem\",\n value: function isDraggingNativeItem() {\n var itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some(function (key) {\n return NativeTypes[key] === itemType;\n });\n }\n }, {\n key: \"beginDragNativeItem\",\n value: function beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n }\n }, {\n key: \"setCurrentDragSourceNode\",\n value: function setCurrentDragSourceNode(node) {\n var _this5 = this;\n\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n\n var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n\n this.mouseMoveTimeoutTimer = setTimeout(function () {\n return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n }, {\n key: \"clearCurrentDragSourceNode\",\n value: function clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n\n if (this.window) {\n this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n\n this.dragStartSourceIds.unshift(sourceId);\n }\n }, {\n key: \"handleDragEnter\",\n value: function handleDragEnter(e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDragOver\",\n value: function handleDragOver(e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n\n this.dragOverTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDrop\",\n value: function handleDrop(e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n }, {\n key: \"window\",\n get: function get() {\n return this.options.window;\n }\n }, {\n key: \"document\",\n get: function get() {\n return this.options.document;\n }\n }]);\n\n return HTML5Backend;\n}();\n\nexport { HTML5Backend as default };","var emptyImage;\nexport function getEmptyImage() {\n if (!emptyImage) {\n emptyImage = new Image();\n emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n\n return emptyImage;\n}","import HTML5Backend from './HTML5Backend';\nimport * as NativeTypes from './NativeTypes';\nexport { getEmptyImage } from './getEmptyImage';\nexport { NativeTypes };\n\nvar createBackend = function createBackend(manager, context) {\n return new HTML5Backend(manager, context);\n};\n\nexport default createBackend;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reactDndHtml5Backend = _interopRequireDefault(require(\"react-dnd-html5-backend\"));\n\nvar _reactDndTouchBackend = _interopRequireDefault(require(\"react-dnd-touch-backend\"));\n\nvar _dndMultiBackend = require(\"dnd-multi-backend\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n backends: [{\n backend: _reactDndHtml5Backend.default,\n transition: _dndMultiBackend.MouseTransition\n }, {\n backend: _reactDndTouchBackend.default,\n options: {\n enableMouseEvents: true\n },\n preview: true,\n transition: _dndMultiBackend.TouchTransition\n }]\n};\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDragLayer } from 'react-dnd';\nvar PreviewContext = React.createContext();\n\nvar getStyle = function getStyle(currentOffset) {\n var transform = \"translate(\".concat(currentOffset.x, \"px, \").concat(currentOffset.y, \"px)\");\n return {\n pointerEvents: 'none',\n position: 'fixed',\n top: 0,\n left: 0,\n transform: transform,\n WebkitTransform: transform\n };\n};\n\nvar Preview = function Preview(props) {\n var collectedProps = useDragLayer(function (monitor) {\n return {\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n itemType: monitor.getItemType(),\n item: monitor.getItem()\n };\n });\n\n if (!collectedProps.isDragging || collectedProps.currentOffset === null) {\n return null;\n }\n\n var data = {\n itemType: collectedProps.itemType,\n item: collectedProps.item,\n style: getStyle(collectedProps.currentOffset)\n };\n var child;\n\n if (props.children && typeof props.children === 'function') {\n child = props.children(data);\n } else if (props.children) {\n child = props.children;\n } else {\n child = props.generator(data);\n }\n\n return /*#__PURE__*/React.createElement(PreviewContext.Provider, {\n value: data\n }, child);\n};\n\nPreview.propTypes = {\n generator: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])\n};\nexport var Context = PreviewContext;\nexport default Preview;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport React, { useState, useEffect } from 'react';\nimport DnDPreview, { Context } from 'react-dnd-preview';\nimport { PreviewManager } from 'dnd-multi-backend';\n\nvar Preview = function Preview(props) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n enabled = _useState2[0],\n setEnabled = _useState2[1];\n\n useEffect(function () {\n var observer = {\n backendChanged: function backendChanged(backend) {\n setEnabled(backend.previewEnabled());\n }\n };\n PreviewManager.register(observer);\n return function () {\n PreviewManager.unregister(observer);\n };\n });\n\n if (!enabled) {\n return null;\n }\n\n return React.createElement(DnDPreview, props);\n};\n\nPreview.Context = Context;\nPreview.propTypes = DnDPreview.propTypes;\nexport default Preview;","export var ListenerType;\n\n(function (ListenerType) {\n ListenerType[\"mouse\"] = \"mouse\";\n ListenerType[\"touch\"] = \"touch\";\n ListenerType[\"keyboard\"] = \"keyboard\";\n})(ListenerType || (ListenerType = {}));","// Used for MouseEvent.buttons (note the s on the end).\nvar MouseButtons = {\n Left: 1,\n Right: 2,\n Center: 4\n}; // Used for e.button (note the lack of an s on the end).\n\nvar MouseButton = {\n Left: 0,\n Center: 1,\n Right: 2\n};\n/**\n * Only touch events and mouse events where the left button is pressed should initiate a drag.\n * @param {MouseEvent | TouchEvent} e The event\n */\n\nexport function eventShouldStartDrag(e) {\n // For touch events, button will be undefined. If e.button is defined,\n // then it should be MouseButton.Left.\n return e.button === undefined || e.button === MouseButton.Left;\n}\n/**\n * Only touch events and mouse events where the left mouse button is no longer held should end a drag.\n * It's possible the user mouse downs with the left mouse button, then mouse down and ups with the right mouse button.\n * We don't want releasing the right mouse button to end the drag.\n * @param {MouseEvent | TouchEvent} e The event\n */\n\nexport function eventShouldEndDrag(e) {\n // Touch events will have buttons be undefined, while mouse events will have e.buttons's left button\n // bit field unset if the left mouse button has been released\n return e.buttons === undefined || (e.buttons & MouseButtons.Left) === 0;\n}\nexport function isTouchEvent(e) {\n return !!e.targetTouches;\n}","import { isTouchEvent } from './predicates';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return undefined;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientTouchOffset(e, lastTargetTouchFallback) {\n if (e.targetTouches.length === 1) {\n return getEventClientOffset(e.targetTouches[0]);\n } else if (lastTargetTouchFallback && e.touches.length === 1) {\n if (e.touches[0].target === lastTargetTouchFallback.target) {\n return getEventClientOffset(e.touches[0]);\n }\n }\n}\nexport function getEventClientOffset(e, lastTargetTouchFallback) {\n if (isTouchEvent(e)) {\n return getEventClientTouchOffset(e, lastTargetTouchFallback);\n } else {\n return {\n x: e.clientX,\n y: e.clientY\n };\n }\n}","var supportsPassive = function () {\n // simular to jQuery's test\n var supported = false;\n\n try {\n addEventListener('test', function () {// do nothing\n }, Object.defineProperty({}, 'passive', {\n get: function get() {\n supported = true;\n return true;\n }\n }));\n } catch (e) {// do nothing\n }\n\n return supported;\n}();\n\nexport default supportsPassive;","function _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\nexport var OptionsReader =\n/*#__PURE__*/\nfunction () {\n function OptionsReader(incoming, context) {\n var _this = this;\n\n _classCallCheck(this, OptionsReader);\n\n this.enableTouchEvents = true;\n this.enableMouseEvents = false;\n this.enableKeyboardEvents = false;\n this.ignoreContextMenu = false;\n this.enableHoverOutsideTarget = false;\n this.touchSlop = 0;\n this.scrollAngleRanges = undefined;\n this.context = context;\n this.delayTouchStart = incoming.delayTouchStart || incoming.delay || 0;\n this.delayMouseStart = incoming.delayMouseStart || incoming.delay || 0;\n Object.keys(incoming).forEach(function (key) {\n if (incoming[key] != null) {\n ;\n _this[key] = incoming[key];\n }\n });\n }\n\n _createClass(OptionsReader, [{\n key: \"window\",\n get: function get() {\n if (this.context && this.context.window) {\n return this.context.window;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }]);\n\n return OptionsReader;\n}();","var _eventNames;\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 _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\nimport { invariant } from '@react-dnd/invariant';\nimport { ListenerType } from './interfaces';\nimport { eventShouldStartDrag, eventShouldEndDrag, isTouchEvent } from './utils/predicates';\nimport { getEventClientOffset, getNodeClientOffset } from './utils/offsets';\nimport { distance, inAngleRanges } from './utils/math';\nimport supportsPassive from './utils/supportsPassive';\nimport { OptionsReader } from './OptionsReader';\nvar eventNames = (_eventNames = {}, _defineProperty(_eventNames, ListenerType.mouse, {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup',\n contextmenu: 'contextmenu'\n}), _defineProperty(_eventNames, ListenerType.touch, {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n}), _defineProperty(_eventNames, ListenerType.keyboard, {\n keydown: 'keydown'\n}), _eventNames);\n\nvar TouchBackend =\n/*#__PURE__*/\nfunction () {\n function TouchBackend(manager, context, options) {\n var _this = this;\n\n _classCallCheck(this, TouchBackend);\n\n this.getSourceClientOffset = function (sourceId) {\n return getNodeClientOffset(_this.sourceNodes[sourceId]);\n };\n\n this.handleTopMoveStartCapture = function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n }\n\n _this.moveStartSourceIds = [];\n };\n\n this.handleMoveStart = function (sourceId) {\n // Just because we received an event doesn't necessarily mean we need to collect drag sources.\n // We only collect start collecting drag sources on touch and left mouse events.\n if (Array.isArray(_this.moveStartSourceIds)) {\n _this.moveStartSourceIds.unshift(sourceId);\n }\n };\n\n this.handleTopMoveStart = function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n } // Don't prematurely preventDefault() here since it might:\n // 1. Mess up scrolling\n // 2. Mess up long tap (which brings up context menu)\n // 3. If there's an anchor link as a child, tap won't be triggered on link\n\n\n var clientOffset = getEventClientOffset(e);\n\n if (clientOffset) {\n if (isTouchEvent(e)) {\n _this.lastTargetTouchFallback = e.targetTouches[0];\n }\n\n _this._mouseClientOffset = clientOffset;\n }\n\n _this.waitingForDelay = false;\n };\n\n this.handleTopMoveStartDelay = function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n }\n\n var delay = e.type === eventNames.touch.start ? _this.options.delayTouchStart : _this.options.delayMouseStart;\n _this.timeout = setTimeout(_this.handleTopMoveStart.bind(_this, e), delay);\n _this.waitingForDelay = true;\n };\n\n this.handleTopMoveCapture = function () {\n _this.dragOverTargetIds = [];\n };\n\n this.handleMove = function (_, targetId) {\n if (_this.dragOverTargetIds) {\n _this.dragOverTargetIds.unshift(targetId);\n }\n };\n\n this.handleTopMove = function (e) {\n if (_this.timeout) {\n clearTimeout(_this.timeout);\n }\n\n if (!_this.document || _this.waitingForDelay) {\n return;\n }\n\n var moveStartSourceIds = _this.moveStartSourceIds,\n dragOverTargetIds = _this.dragOverTargetIds;\n var enableHoverOutsideTarget = _this.options.enableHoverOutsideTarget;\n var clientOffset = getEventClientOffset(e, _this.lastTargetTouchFallback);\n\n if (!clientOffset) {\n return;\n } // If the touch move started as a scroll, or is is between the scroll angles\n\n\n if (_this._isScrolling || !_this.monitor.isDragging() && inAngleRanges(_this._mouseClientOffset.x || 0, _this._mouseClientOffset.y || 0, clientOffset.x, clientOffset.y, _this.options.scrollAngleRanges)) {\n _this._isScrolling = true;\n return;\n } // If we're not dragging and we've moved a little, that counts as a drag start\n\n\n if (!_this.monitor.isDragging() && // eslint-disable-next-line no-prototype-builtins\n _this._mouseClientOffset.hasOwnProperty('x') && moveStartSourceIds && distance(_this._mouseClientOffset.x || 0, _this._mouseClientOffset.y || 0, clientOffset.x, clientOffset.y) > (_this.options.touchSlop ? _this.options.touchSlop : 0)) {\n _this.moveStartSourceIds = undefined;\n\n _this.actions.beginDrag(moveStartSourceIds, {\n clientOffset: _this._mouseClientOffset,\n getSourceClientOffset: _this.getSourceClientOffset,\n publishSource: false\n });\n }\n\n if (!_this.monitor.isDragging()) {\n return;\n }\n\n var sourceNode = _this.sourceNodes[_this.monitor.getSourceId()];\n\n _this.installSourceNodeRemovalObserver(sourceNode);\n\n _this.actions.publishDragSource();\n\n e.preventDefault(); // Get the node elements of the hovered DropTargets\n\n var dragOverTargetNodes = (dragOverTargetIds || []).map(function (key) {\n return _this.targetNodes[key];\n }); // Get the a ordered list of nodes that are touched by\n\n var elementsAtPoint = _this.options.getDropTargetElementsAtPoint ? _this.options.getDropTargetElementsAtPoint(clientOffset.x, clientOffset.y, dragOverTargetNodes) : _this.document.elementsFromPoint(clientOffset.x, clientOffset.y); // Extend list with parents that are not receiving elementsFromPoint events (size 0 elements and svg groups)\n\n var elementsAtPointExtended = [];\n\n for (var nodeId in elementsAtPoint) {\n // eslint-disable-next-line no-prototype-builtins\n if (!elementsAtPoint.hasOwnProperty(nodeId)) {\n continue;\n }\n\n var currentNode = elementsAtPoint[nodeId];\n elementsAtPointExtended.push(currentNode);\n\n while (currentNode) {\n currentNode = currentNode.parentElement;\n\n if (elementsAtPointExtended.indexOf(currentNode) === -1) {\n elementsAtPointExtended.push(currentNode);\n }\n }\n }\n\n var orderedDragOverTargetIds = elementsAtPointExtended // Filter off nodes that arent a hovered DropTargets nodes\n .filter(function (node) {\n return dragOverTargetNodes.indexOf(node) > -1;\n }) // Map back the nodes elements to targetIds\n .map(function (node) {\n for (var targetId in _this.targetNodes) {\n if (node === _this.targetNodes[targetId]) {\n return targetId;\n }\n }\n\n return undefined;\n }) // Filter off possible null rows\n .filter(function (node) {\n return !!node;\n }).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }); // Invoke hover for drop targets when source node is still over and pointer is outside\n\n if (enableHoverOutsideTarget) {\n for (var targetId in _this.targetNodes) {\n if (_this.targetNodes[targetId] && _this.targetNodes[targetId].contains(sourceNode) && orderedDragOverTargetIds.indexOf(targetId) === -1) {\n orderedDragOverTargetIds.unshift(targetId);\n break;\n }\n }\n } // Reverse order because dnd-core reverse it before calling the DropTarget drop methods\n\n\n orderedDragOverTargetIds.reverse();\n\n _this.actions.hover(orderedDragOverTargetIds, {\n clientOffset: clientOffset\n });\n };\n\n this.handleTopMoveEndCapture = function (e) {\n _this._isScrolling = false;\n _this.lastTargetTouchFallback = undefined;\n\n if (!eventShouldEndDrag(e)) {\n return;\n }\n\n if (!_this.monitor.isDragging() || _this.monitor.didDrop()) {\n _this.moveStartSourceIds = undefined;\n return;\n }\n\n e.preventDefault();\n _this._mouseClientOffset = {};\n\n _this.uninstallSourceNodeRemovalObserver();\n\n _this.actions.drop();\n\n _this.actions.endDrag();\n };\n\n this.handleCancelOnEscape = function (e) {\n if (e.key === 'Escape' && _this.monitor.isDragging()) {\n _this._mouseClientOffset = {};\n\n _this.uninstallSourceNodeRemovalObserver();\n\n _this.actions.endDrag();\n }\n };\n\n this.options = new OptionsReader(options, context);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.sourceNodes = {};\n this.sourcePreviewNodes = {};\n this.sourcePreviewNodeOptions = {};\n this.targetNodes = {};\n this.listenerTypes = [];\n this._mouseClientOffset = {};\n this._isScrolling = false;\n\n if (this.options.enableMouseEvents) {\n this.listenerTypes.push(ListenerType.mouse);\n }\n\n if (this.options.enableTouchEvents) {\n this.listenerTypes.push(ListenerType.touch);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.listenerTypes.push(ListenerType.keyboard);\n }\n } // public for test\n\n\n _createClass(TouchBackend, [{\n key: \"setup\",\n value: function setup() {\n if (!this.window) {\n return;\n }\n\n invariant(!TouchBackend.isSetUp, 'Cannot have two Touch backends at the same time.');\n TouchBackend.isSetUp = true;\n this.addEventListener(this.window, 'start', this.getTopMoveStartHandler());\n this.addEventListener(this.window, 'start', this.handleTopMoveStartCapture, true);\n this.addEventListener(this.window, 'move', this.handleTopMove);\n this.addEventListener(this.window, 'move', this.handleTopMoveCapture, true);\n this.addEventListener(this.window, 'end', this.handleTopMoveEndCapture, true);\n\n if (this.options.enableMouseEvents && !this.options.ignoreContextMenu) {\n this.addEventListener(this.window, 'contextmenu', this.handleTopMoveEndCapture);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.addEventListener(this.window, 'keydown', this.handleCancelOnEscape, true);\n }\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n if (!this.window) {\n return;\n }\n\n TouchBackend.isSetUp = false;\n this._mouseClientOffset = {};\n this.removeEventListener(this.window, 'start', this.handleTopMoveStartCapture, true);\n this.removeEventListener(this.window, 'start', this.handleTopMoveStart);\n this.removeEventListener(this.window, 'move', this.handleTopMoveCapture, true);\n this.removeEventListener(this.window, 'move', this.handleTopMove);\n this.removeEventListener(this.window, 'end', this.handleTopMoveEndCapture, true);\n\n if (this.options.enableMouseEvents && !this.options.ignoreContextMenu) {\n this.removeEventListener(this.window, 'contextmenu', this.handleTopMoveEndCapture);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.removeEventListener(this.window, 'keydown', this.handleCancelOnEscape, true);\n }\n\n this.uninstallSourceNodeRemovalObserver();\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(subject, event, handler, capture) {\n var options = supportsPassive ? {\n capture: capture,\n passive: false\n } : capture;\n this.listenerTypes.forEach(function (listenerType) {\n var evt = eventNames[listenerType][event];\n\n if (evt) {\n subject.addEventListener(evt, handler, options);\n }\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(subject, event, handler, capture) {\n var options = supportsPassive ? {\n capture: capture,\n passive: false\n } : capture;\n this.listenerTypes.forEach(function (listenerType) {\n var evt = eventNames[listenerType][event];\n\n if (evt) {\n subject.removeEventListener(evt, handler, options);\n }\n });\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node) {\n var _this2 = this;\n\n var handleMoveStart = this.handleMoveStart.bind(this, sourceId);\n this.sourceNodes[sourceId] = node;\n this.addEventListener(node, 'start', handleMoveStart);\n return function () {\n delete _this2.sourceNodes[sourceId];\n\n _this2.removeEventListener(node, 'start', handleMoveStart);\n };\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this3 = this;\n\n this.sourcePreviewNodeOptions[sourceId] = options;\n this.sourcePreviewNodes[sourceId] = node;\n return function () {\n delete _this3.sourcePreviewNodes[sourceId];\n delete _this3.sourcePreviewNodeOptions[sourceId];\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n if (!this.document) {\n return function () {\n return null;\n };\n }\n\n var handleMove = function handleMove(e) {\n if (!_this4.document || !_this4.monitor.isDragging()) {\n return;\n }\n\n var coords;\n /**\n * Grab the coordinates for the current mouse/touch position\n */\n\n switch (e.type) {\n case eventNames.mouse.move:\n coords = {\n x: e.clientX,\n y: e.clientY\n };\n break;\n\n case eventNames.touch.move:\n coords = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n break;\n }\n /**\n * Use the coordinates to grab the element the drag ended on.\n * If the element is the same as the target node (or any of it's children) then we have hit a drop target and can handle the move.\n */\n\n\n var droppedOn = coords != null ? _this4.document.elementFromPoint(coords.x, coords.y) : undefined;\n var childMatch = droppedOn && node.contains(droppedOn);\n\n if (droppedOn === node || childMatch) {\n return _this4.handleMove(e, targetId);\n }\n };\n /**\n * Attaching the event listener to the body so that touchmove will work while dragging over multiple target elements.\n */\n\n\n this.addEventListener(this.document.body, 'move', handleMove);\n this.targetNodes[targetId] = node;\n return function () {\n if (_this4.document) {\n delete _this4.targetNodes[targetId];\n\n _this4.removeEventListener(_this4.document.body, 'move', handleMove);\n }\n };\n }\n }, {\n key: \"getTopMoveStartHandler\",\n value: function getTopMoveStartHandler() {\n if (!this.options.delayTouchStart && !this.options.delayMouseStart) {\n return this.handleTopMoveStart;\n }\n\n return this.handleTopMoveStartDelay;\n }\n }, {\n key: \"installSourceNodeRemovalObserver\",\n value: function installSourceNodeRemovalObserver(node) {\n var _this5 = this;\n\n this.uninstallSourceNodeRemovalObserver();\n this.draggedSourceNode = node;\n this.draggedSourceNodeRemovalObserver = new MutationObserver(function () {\n if (node && !node.parentElement) {\n _this5.resurrectSourceNode();\n\n _this5.uninstallSourceNodeRemovalObserver();\n }\n });\n\n if (!node || !node.parentElement) {\n return;\n }\n\n this.draggedSourceNodeRemovalObserver.observe(node.parentElement, {\n childList: true\n });\n }\n }, {\n key: \"resurrectSourceNode\",\n value: function resurrectSourceNode() {\n if (this.document && this.draggedSourceNode) {\n this.draggedSourceNode.style.display = 'none';\n this.draggedSourceNode.removeAttribute('data-reactid');\n this.document.body.appendChild(this.draggedSourceNode);\n }\n }\n }, {\n key: \"uninstallSourceNodeRemovalObserver\",\n value: function uninstallSourceNodeRemovalObserver() {\n if (this.draggedSourceNodeRemovalObserver) {\n this.draggedSourceNodeRemovalObserver.disconnect();\n }\n\n this.draggedSourceNodeRemovalObserver = undefined;\n this.draggedSourceNode = undefined;\n }\n }, {\n key: \"window\",\n get: function get() {\n return this.options.window;\n } // public for test\n\n }, {\n key: \"document\",\n get: function get() {\n if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }]);\n\n return TouchBackend;\n}();\n\nexport { TouchBackend as default };","export function distance(x1, y1, x2, y2) {\n return Math.sqrt(Math.pow(Math.abs(x2 - x1), 2) + Math.pow(Math.abs(y2 - y1), 2));\n}\nexport function inAngleRanges(x1, y1, x2, y2, angleRanges) {\n if (!angleRanges) {\n return false;\n }\n\n var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI + 180;\n\n for (var i = 0; i < angleRanges.length; ++i) {\n if ((angleRanges[i].start == null || angle >= angleRanges[i].start) && (angleRanges[i].end == null || angle <= angleRanges[i].end)) {\n return true;\n }\n }\n\n return false;\n}","import TouchBackend from './TouchBackend';\n\nvar createBackend = function createBackend(manager, context) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new TouchBackend(manager, context, options);\n};\n\nexport default createBackend;","import * as React from 'react';\nimport { createDragDropManager } from 'dnd-core';\n/**\n * Create the React Context\n */\n\nexport var DndContext = React.createContext({\n dragDropManager: undefined\n});\n/**\n * Creates the context object we're providing\n * @param backend\n * @param context\n */\n\nexport function createDndContext(backend, context, options, debugMode) {\n return {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { useState, useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\n\nexport function useCollector(monitor, collect, onUpdate) {\n var _useState = useState(function () {\n return collect(monitor);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n collected = _useState2[0],\n setCollected = _useState2[1];\n\n var updateCollected = useCallback(function () {\n var nextValue = collect(monitor);\n\n if (!shallowEqual(collected, nextValue)) {\n setCollected(nextValue);\n\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [collected, monitor, onUpdate]); // update the collected properties after the first render\n // and the components are attached to dnd-core\n\n useIsomorphicLayoutEffect(updateCollected, []);\n return [collected, updateCollected];\n}","import { useContext } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { DndContext } from '../../common/DndContext';\n/**\n * A hook to retrieve the DragDropManager from Context\n */\n\nexport function useDragDropManager() {\n var _useContext = useContext(DndContext),\n dragDropManager = _useContext.dragDropManager;\n\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}","import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side.\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useEffect } from 'react';\nimport { useDragDropManager } from './internal/useDragDropManager';\nimport { useCollector } from './internal/useCollector';\n/**\n * useDragLayer Hook\n * @param collector The property collector\n */\n\nexport function useDragLayer(collect) {\n var dragDropManager = useDragDropManager();\n var monitor = dragDropManager.getMonitor();\n\n var _useCollector = useCollector(monitor, collect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useEffect(function () {\n return monitor.subscribeToOffsetChange(updateCollected);\n });\n useEffect(function () {\n return monitor.subscribeToStateChange(updateCollected);\n });\n return collected;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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 _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\nimport * as React from 'react';\nimport { memo } from 'react';\nimport { DndContext, createDndContext } from './DndContext';\nvar refCount = 0;\n/**\n * A React component that provides the React-DnD context\n */\n\nexport var DndProvider = memo(function (_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _getDndContextValue = getDndContextValue(props),\n _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),\n manager = _getDndContextValue2[0],\n isGlobalInstance = _getDndContextValue2[1]; // memoized from props\n\n /**\n * If the global context was used to store the DND context\n * then where theres no more references to it we should\n * clean it up to avoid memory leaks\n */\n\n\n React.useEffect(function () {\n if (isGlobalInstance) {\n refCount++;\n }\n\n return function () {\n if (isGlobalInstance) {\n refCount--;\n\n if (refCount === 0) {\n var context = getGlobalContext();\n context[instanceSymbol] = null;\n }\n }\n };\n }, []);\n return React.createElement(DndContext.Provider, {\n value: manager\n }, children);\n});\nDndProvider.displayName = 'DndProvider';\n\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n var _manager = {\n dragDropManager: props.manager\n };\n return [_manager, false];\n }\n\n var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n var isGlobalInstance = !props.context;\n return [manager, isGlobalInstance];\n}\n\nvar instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\n\nfunction createSingletonDndContext(backend) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var debugMode = arguments.length > 3 ? arguments[3] : undefined;\n var ctx = context;\n\n if (!ctx[instanceSymbol]) {\n ctx[instanceSymbol] = createDndContext(backend, context, options, debugMode);\n }\n\n return ctx[instanceSymbol];\n}\n\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}","import * as React from 'react';\n/*\n * A utility for rendering a drag preview image\n */\n\nexport var DragPreviewImage = React.memo(function (_ref) {\n var connect = _ref.connect,\n src = _ref.src;\n\n if (typeof Image !== 'undefined') {\n var img = new Image();\n img.src = src;\n\n img.onload = function () {\n return connect(img);\n };\n }\n\n return null;\n});\nDragPreviewImage.displayName = 'DragPreviewImage';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useCollector } from './useCollector';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n var _useCollector = useCollector(monitor, collect, onCollect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n var handlerId = monitor.getHandlerId();\n\n if (handlerId == null) {\n return undefined;\n }\n\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [handlerId]\n });\n }, [monitor, updateCollected]);\n return collected;\n}","export function registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () {\n return registry.removeTarget(targetId);\n }];\n}\nexport function registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () {\n return registry.removeSource(sourceId);\n }];\n}","function _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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\nexport var DragSourceMonitorImpl =\n/*#__PURE__*/\nfunction () {\n function DragSourceMonitorImpl(manager) {\n _classCallCheck(this, DragSourceMonitorImpl);\n\n this.sourceId = null;\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DragSourceMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.sourceId;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally {\n isCallingCanDrag = false;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n if (!this.sourceId) {\n return false;\n }\n\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally {\n isCallingIsDragging = false;\n }\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DragSourceMonitorImpl;\n}();","import { cloneElement } from 'react';\nimport { invariant } from '@react-dnd/invariant';\n\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\n\nexport function cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: function ref(node) {\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}","import { isValidElement } from 'react';\nimport { cloneWithRef } from '../utils/cloneWithRef';\n\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n\n var displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + \"You can either wrap \".concat(displayName, \" into a
, or turn it into a \") + 'drag source or a drop target itself.');\n}\n\nfunction wrapHookToRecognizeElement(hook) {\n return function () {\n var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options); // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n\n return node;\n } // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n\n\n var element = elementOrNode;\n throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly\n\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n return cloneWithRef(element, ref);\n };\n}\n\nexport default function wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key]; // ref objects should be passed straight through without wrapping\n\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n var wrappedHook = wrapHookToRecognizeElement(hook);\n\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n }\n });\n return wrappedHooks;\n}","function _typeof(obj) { 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\nexport function isRef(obj) {\n return (// eslint-disable-next-line no-prototype-builtins\n obj !== null && _typeof(obj) === 'object' && obj.hasOwnProperty('current')\n );\n}","function _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\nimport wrapConnectorHooks from './wrapConnectorHooks';\nimport { isRef } from '../utils/isRef';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nexport var SourceConnector =\n/*#__PURE__*/\nfunction () {\n function SourceConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, SourceConnector);\n\n this.hooks = wrapConnectorHooks({\n dragSource: function dragSource(node, options) {\n _this.clearDragSource();\n\n _this.dragSourceOptions = options || null;\n\n if (isRef(node)) {\n _this.dragSourceRef = node;\n } else {\n _this.dragSourceNode = node;\n }\n\n _this.reconnectDragSource();\n },\n dragPreview: function dragPreview(node, options) {\n _this.clearDragPreview();\n\n _this.dragPreviewOptions = options || null;\n\n if (isRef(node)) {\n _this.dragPreviewRef = node;\n } else {\n _this.dragPreviewNode = node;\n }\n\n _this.reconnectDragPreview();\n }\n });\n this.handlerId = null; // The drop target may either be attached via ref or connect function\n\n this.dragSourceRef = null;\n this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function\n\n this.dragPreviewRef = null;\n this.dragPreviewOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDragSource = null;\n this.lastConnectedDragSourceOptions = null;\n this.lastConnectedDragPreview = null;\n this.lastConnectedDragPreviewOptions = null;\n this.backend = backend;\n }\n\n _createClass(SourceConnector, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n this.reconnectDragSource();\n this.reconnectDragPreview();\n }\n }, {\n key: \"reconnectDragSource\",\n value: function reconnectDragSource() {\n var dragSource = this.dragSource; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n\n if (didChange) {\n this.disconnectDragSource();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n }\n }, {\n key: \"reconnectDragPreview\",\n value: function reconnectDragPreview() {\n var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n\n if (!this.handlerId) {\n this.disconnectDragPreview();\n } else if (this.dragPreview && didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.disconnectDragPreview();\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didConnectedDragSourceChange\",\n value: function didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n }, {\n key: \"didConnectedDragPreviewChange\",\n value: function didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n }, {\n key: \"didDragSourceOptionsChange\",\n value: function didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n }, {\n key: \"didDragPreviewOptionsChange\",\n value: function didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n }, {\n key: \"disconnectDragSource\",\n value: function disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n }, {\n key: \"disconnectDragPreview\",\n value: function disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n }, {\n key: \"clearDragSource\",\n value: function clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n }, {\n key: \"clearDragPreview\",\n value: function clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }, {\n key: \"connectTarget\",\n get: function get() {\n return this.dragSource;\n }\n }, {\n key: \"dragSourceOptions\",\n get: function get() {\n return this.dragSourceOptionsInternal;\n },\n set: function set(options) {\n this.dragSourceOptionsInternal = options;\n }\n }, {\n key: \"dragPreviewOptions\",\n get: function get() {\n return this.dragPreviewOptionsInternal;\n },\n set: function set(options) {\n this.dragPreviewOptionsInternal = options;\n }\n }, {\n key: \"dragSource\",\n get: function get() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n }, {\n key: \"dragPreview\",\n get: function get() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n }]);\n\n return SourceConnector;\n}();","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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) { 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\nimport { useMemo } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { registerSource } from '../../common/registration';\nimport { useDragDropManager } from './useDragDropManager';\nimport { DragSourceMonitorImpl } from '../../common/DragSourceMonitorImpl';\nimport { SourceConnector } from '../../common/SourceConnector';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nexport function useDragSourceMonitor() {\n var manager = useDragDropManager();\n var monitor = useMemo(function () {\n return new DragSourceMonitorImpl(manager);\n }, [manager]);\n var connector = useMemo(function () {\n return new SourceConnector(manager.getBackend());\n }, [manager]);\n return [monitor, connector];\n}\nexport function useDragHandler(spec, monitor, connector) {\n var manager = useDragDropManager();\n var handler = useMemo(function () {\n return {\n beginDrag: function beginDrag() {\n var _spec$current = spec.current,\n begin = _spec$current.begin,\n item = _spec$current.item;\n\n if (begin) {\n var beginResult = begin(monitor);\n invariant(beginResult == null || _typeof(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null');\n return beginResult || item || {};\n }\n\n return item || {};\n },\n canDrag: function canDrag() {\n if (typeof spec.current.canDrag === 'boolean') {\n return spec.current.canDrag;\n } else if (typeof spec.current.canDrag === 'function') {\n return spec.current.canDrag(monitor);\n } else {\n return true;\n }\n },\n isDragging: function isDragging(globalMonitor, target) {\n var isDragging = spec.current.isDragging;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n },\n endDrag: function endDrag() {\n var end = spec.current.end;\n\n if (end) {\n end(monitor.getItem(), monitor);\n }\n\n connector.reconnect();\n }\n };\n }, []);\n useIsomorphicLayoutEffect(function registerHandler() {\n var _registerSource = registerSource(spec.current.item.type, handler, manager),\n _registerSource2 = _slicedToArray(_registerSource, 2),\n handlerId = _registerSource2[0],\n unregister = _registerSource2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, []);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useRef, useMemo } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { useMonitorOutput } from './internal/useMonitorOutput';\nimport { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect';\nimport { useDragSourceMonitor, useDragHandler } from './internal/drag';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification *\n */\n\nexport function useDrag(spec) {\n var specRef = useRef(spec);\n specRef.current = spec; // TODO: wire options into createSourceConnector\n\n invariant(spec.item != null, 'item must be defined');\n invariant(spec.item.type != null, 'item type must be defined');\n\n var _useDragSourceMonitor = useDragSourceMonitor(),\n _useDragSourceMonitor2 = _slicedToArray(_useDragSourceMonitor, 2),\n monitor = _useDragSourceMonitor2[0],\n connector = _useDragSourceMonitor2[1];\n\n useDragHandler(specRef, monitor, connector);\n var result = useMonitorOutput(monitor, specRef.current.collect || function () {\n return {};\n }, function () {\n return connector.reconnect();\n });\n var connectDragSource = useMemo(function () {\n return connector.hooks.dragSource();\n }, [connector]);\n var connectDragPreview = useMemo(function () {\n return connector.hooks.dragPreview();\n }, [connector]);\n useIsomorphicLayoutEffect(function () {\n connector.dragSourceOptions = specRef.current.options || null;\n connector.reconnect();\n }, [connector]);\n useIsomorphicLayoutEffect(function () {\n connector.dragPreviewOptions = specRef.current.previewOptions || null;\n connector.reconnect();\n }, [connector]);\n return [result, connectDragSource, connectDragPreview];\n}","function _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\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport wrapConnectorHooks from './wrapConnectorHooks';\nimport { isRef } from '../utils/isRef';\nexport var TargetConnector =\n/*#__PURE__*/\nfunction () {\n function TargetConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, TargetConnector);\n\n this.hooks = wrapConnectorHooks({\n dropTarget: function dropTarget(node, options) {\n _this.clearDropTarget();\n\n _this.dropTargetOptions = options;\n\n if (isRef(node)) {\n _this.dropTargetRef = node;\n } else {\n _this.dropTargetNode = node;\n }\n\n _this.reconnect();\n }\n });\n this.handlerId = null; // The drop target may either be attached via ref or connect function\n\n this.dropTargetRef = null;\n this.dropTargetOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDropTarget = null;\n this.lastConnectedDropTargetOptions = null;\n this.backend = backend;\n }\n\n _createClass(TargetConnector, [{\n key: \"reconnect\",\n value: function reconnect() {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n\n if (didChange) {\n this.disconnectDropTarget();\n }\n\n var dropTarget = this.dropTarget;\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n }, {\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didDropTargetChange\",\n value: function didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n }, {\n key: \"didOptionsChange\",\n value: function didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n }, {\n key: \"disconnectDropTarget\",\n value: function disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n }, {\n key: \"clearDropTarget\",\n value: function clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n }, {\n key: \"connectTarget\",\n get: function get() {\n return this.dropTarget;\n }\n }, {\n key: \"dropTargetOptions\",\n get: function get() {\n return this.dropTargetOptionsInternal;\n },\n set: function set(options) {\n this.dropTargetOptionsInternal = options;\n }\n }, {\n key: \"dropTarget\",\n get: function get() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n }]);\n\n return TargetConnector;\n}();","function _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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrop = false;\nexport var DropTargetMonitorImpl =\n/*#__PURE__*/\nfunction () {\n function DropTargetMonitorImpl(manager) {\n _classCallCheck(this, DropTargetMonitorImpl);\n\n this.targetId = null;\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DropTargetMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.targetId;\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"canDrop\",\n value: function canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally {\n isCallingCanDrop = false;\n }\n }\n }, {\n key: \"isOver\",\n value: function isOver(options) {\n if (!this.targetId) {\n return false;\n }\n\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DropTargetMonitorImpl;\n}();","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useRef, useMemo } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { useMonitorOutput } from './internal/useMonitorOutput';\nimport { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect';\nimport { useDropHandler, useDropTargetMonitor } from './internal/drop';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification\n */\n\nexport function useDrop(spec) {\n var specRef = useRef(spec);\n specRef.current = spec;\n invariant(spec.accept != null, 'accept must be defined');\n\n var _useDropTargetMonitor = useDropTargetMonitor(),\n _useDropTargetMonitor2 = _slicedToArray(_useDropTargetMonitor, 2),\n monitor = _useDropTargetMonitor2[0],\n connector = _useDropTargetMonitor2[1];\n\n useDropHandler(specRef, monitor, connector);\n var result = useMonitorOutput(monitor, specRef.current.collect || function () {\n return {};\n }, function () {\n return connector.reconnect();\n });\n var connectDropTarget = useMemo(function () {\n return connector.hooks.dropTarget();\n }, [connector]);\n useIsomorphicLayoutEffect(function () {\n connector.dropTargetOptions = spec.options || null;\n connector.reconnect();\n }, [spec.options]);\n return [result, connectDropTarget];\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nimport { useMemo } from 'react';\nimport { registerTarget } from '../../common/registration';\nimport { useDragDropManager } from './useDragDropManager';\nimport { TargetConnector } from '../../common/TargetConnector';\nimport { DropTargetMonitorImpl } from '../../common/DropTargetMonitorImpl';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nexport function useDropTargetMonitor() {\n var manager = useDragDropManager();\n var monitor = useMemo(function () {\n return new DropTargetMonitorImpl(manager);\n }, [manager]);\n var connector = useMemo(function () {\n return new TargetConnector(manager.getBackend());\n }, [manager]);\n return [monitor, connector];\n}\nexport function useDropHandler(spec, monitor, connector) {\n var manager = useDragDropManager();\n var handler = useMemo(function () {\n return {\n canDrop: function canDrop() {\n var canDrop = spec.current.canDrop;\n return canDrop ? canDrop(monitor.getItem(), monitor) : true;\n },\n hover: function hover() {\n var hover = spec.current.hover;\n\n if (hover) {\n hover(monitor.getItem(), monitor);\n }\n },\n drop: function drop() {\n var drop = spec.current.drop;\n\n if (drop) {\n return drop(monitor.getItem(), monitor);\n }\n }\n };\n }, [monitor]);\n useIsomorphicLayoutEffect(function registerHandler() {\n var _registerTarget = registerTarget(spec.current.accept, handler, manager),\n _registerTarget2 = _slicedToArray(_registerTarget, 2),\n handlerId = _registerTarget2[0],\n unregister = _registerTarget2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [monitor, connector]);\n}","function _typeof(obj) { 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\n// cheap lodash replacements\nexport function isFunction(input) {\n return typeof input === 'function';\n}\nexport function noop() {// noop\n}\n\nfunction isObjectLike(input) {\n return _typeof(input) === 'object' && input !== null;\n}\n\nexport function isPlainObject(input) {\n if (!isObjectLike(input)) {\n return false;\n }\n\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n\n var proto = input;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(input) === proto;\n}","export function getDecoratedComponent(instanceRef) {\n var currentRef = instanceRef.current;\n\n if (currentRef == null) {\n return null;\n } else if (currentRef.decoratedRef) {\n // go through the private field in decorateHandler to avoid the invariant hit\n return currentRef.decoratedRef.current;\n } else {\n return currentRef;\n }\n}\nexport function isClassComponent(Component) {\n return Component && Component.prototype && typeof Component.prototype.render === 'function';\n}\nexport function isRefForwardingComponent(C) {\n return C && C.$$typeof && C.$$typeof.toString() === 'Symbol(react.forward_ref)';\n}\nexport function isRefable(C) {\n return isClassComponent(C) || isRefForwardingComponent(C);\n}\nexport function checkDecoratorArguments(functionName, signature) {\n if (process.env.NODE_ENV !== 'production') {\n for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) {\n var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2];\n\n if (arg && arg.prototype && arg.prototype.render) {\n // eslint-disable-next-line no-console\n console.error('You seem to be applying the arguments in the wrong order. ' + \"It should be \".concat(functionName, \"(\").concat(signature, \")(Component), not the other way around. \") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order');\n return;\n }\n }\n }\n}","function _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\nimport { isFunction, noop } from '../utils/js_utils';\n/**\n * Provides a set of static methods for creating Disposables.\n * @param {Function} action Action to run during the first call to dispose.\n * The action is guaranteed to be run at most once.\n */\n\nexport var Disposable =\n/*#__PURE__*/\nfunction () {\n function Disposable(action) {\n _classCallCheck(this, Disposable);\n\n this.isDisposed = false;\n this.action = isFunction(action) ? action : noop;\n }\n /**\n * Validates whether the given object is a disposable\n * @param {Object} Object to test whether it has a dispose method\n * @returns {Boolean} true if a disposable object, else false.\n */\n\n\n _createClass(Disposable, [{\n key: \"dispose\",\n\n /** Performs the task of cleaning up resources. */\n value: function dispose() {\n if (!this.isDisposed) {\n this.action();\n this.isDisposed = true;\n }\n }\n }], [{\n key: \"isDisposable\",\n value: function isDisposable(d) {\n return d && isFunction(d.dispose);\n }\n }, {\n key: \"_fixup\",\n value: function _fixup(result) {\n return Disposable.isDisposable(result) ? result : Disposable.empty;\n }\n /**\n * Creates a disposable object that invokes the specified action when disposed.\n * @param {Function} dispose Action to run during the first call to dispose.\n * The action is guaranteed to be run at most once.\n * @return {Disposable} The disposable object that runs the given action upon disposal.\n */\n\n }, {\n key: \"create\",\n value: function create(action) {\n return new Disposable(action);\n }\n }]);\n\n return Disposable;\n}();\n/**\n * Gets the disposable that does nothing when disposed.\n */\n\nDisposable.empty = {\n dispose: noop\n};\n/**\n * Represents a group of disposable resources that are disposed together.\n * @constructor\n */\n\nexport var CompositeDisposable =\n/*#__PURE__*/\nfunction () {\n function CompositeDisposable() {\n _classCallCheck(this, CompositeDisposable);\n\n this.isDisposed = false;\n\n for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) {\n disposables[_key] = arguments[_key];\n }\n\n this.disposables = disposables;\n }\n /**\n * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.\n * @param {Any} item Disposable to add.\n */\n\n\n _createClass(CompositeDisposable, [{\n key: \"add\",\n value: function add(item) {\n if (this.isDisposed) {\n item.dispose();\n } else {\n this.disposables.push(item);\n }\n }\n /**\n * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.\n * @param {Any} item Disposable to remove.\n * @returns {Boolean} true if found; false otherwise.\n */\n\n }, {\n key: \"remove\",\n value: function remove(item) {\n var shouldDispose = false;\n\n if (!this.isDisposed) {\n var idx = this.disposables.indexOf(item);\n\n if (idx !== -1) {\n shouldDispose = true;\n this.disposables.splice(idx, 1);\n item.dispose();\n }\n }\n\n return shouldDispose;\n }\n /**\n * Disposes all disposables in the group and removes them from the group but\n * does not dispose the CompositeDisposable.\n */\n\n }, {\n key: \"clear\",\n value: function clear() {\n if (!this.isDisposed) {\n var len = this.disposables.length;\n var currentDisposables = new Array(len);\n\n for (var i = 0; i < len; i++) {\n currentDisposables[i] = this.disposables[i];\n }\n\n this.disposables = [];\n\n for (var _i = 0; _i < len; _i++) {\n currentDisposables[_i].dispose();\n }\n }\n }\n /**\n * Disposes all disposables in the group and removes them from the group.\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this.isDisposed) {\n this.isDisposed = true;\n var len = this.disposables.length;\n var currentDisposables = new Array(len);\n\n for (var i = 0; i < len; i++) {\n currentDisposables[i] = this.disposables[i];\n }\n\n this.disposables = [];\n\n for (var _i2 = 0; _i2 < len; _i2++) {\n currentDisposables[_i2].dispose();\n }\n }\n }\n }]);\n\n return CompositeDisposable;\n}();\n/**\n * Represents a disposable resource whose underlying disposable resource can\n * be replaced by another disposable resource, causing automatic disposal of\n * the previous underlying disposable resource.\n */\n\nexport var SerialDisposable =\n/*#__PURE__*/\nfunction () {\n function SerialDisposable() {\n _classCallCheck(this, SerialDisposable);\n\n this.isDisposed = false;\n }\n /**\n * Gets the underlying disposable.\n * @returns {Any} the underlying disposable.\n */\n\n\n _createClass(SerialDisposable, [{\n key: \"getDisposable\",\n value: function getDisposable() {\n return this.current;\n }\n }, {\n key: \"setDisposable\",\n value: function setDisposable(value) {\n var shouldDispose = this.isDisposed;\n\n if (!shouldDispose) {\n var old = this.current;\n this.current = value;\n\n if (old) {\n old.dispose();\n }\n }\n\n if (shouldDispose && value) {\n value.dispose();\n }\n }\n /** Performs the task of cleaning up resources. */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this.isDisposed) {\n this.isDisposed = true;\n var old = this.current;\n this.current = undefined;\n\n if (old) {\n old.dispose();\n }\n }\n }\n }]);\n\n return SerialDisposable;\n}();","function _typeof(obj) { 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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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 _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 _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 _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\nimport * as React from 'react';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { invariant } from '@react-dnd/invariant';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { DndContext } from '../index';\nimport { isPlainObject } from '../utils/js_utils';\nimport { Disposable, CompositeDisposable, SerialDisposable } from './disposables';\nimport { isRefable } from './utils';\nexport default function decorateHandler(_ref) {\n var DecoratedComponent = _ref.DecoratedComponent,\n createHandler = _ref.createHandler,\n createMonitor = _ref.createMonitor,\n createConnector = _ref.createConnector,\n registerHandler = _ref.registerHandler,\n containerDisplayName = _ref.containerDisplayName,\n getType = _ref.getType,\n collect = _ref.collect,\n options = _ref.options;\n var _options$arePropsEqua = options.arePropsEqual,\n arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;\n var Decorated = DecoratedComponent;\n var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\n var DragDropContainer =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(DragDropContainer, _React$Component);\n\n function DragDropContainer(props) {\n var _this;\n\n _classCallCheck(this, DragDropContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DragDropContainer).call(this, props));\n _this.decoratedRef = React.createRef();\n\n _this.handleChange = function () {\n var nextState = _this.getCurrentState();\n\n if (!shallowEqual(nextState, _this.state)) {\n _this.setState(nextState);\n }\n };\n\n _this.disposable = new SerialDisposable();\n\n _this.receiveProps(props);\n\n _this.dispose();\n\n return _this;\n }\n\n _createClass(DragDropContainer, [{\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.handlerId;\n }\n }, {\n key: \"getDecoratedComponentInstance\",\n value: function getDecoratedComponentInstance() {\n invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');\n return this.decoratedRef.current;\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.disposable = new SerialDisposable();\n this.currentType = undefined;\n this.receiveProps(this.props);\n this.handleChange();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (!arePropsEqual(this.props, prevProps)) {\n this.receiveProps(this.props);\n this.handleChange();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.dispose();\n }\n }, {\n key: \"receiveProps\",\n value: function receiveProps(props) {\n if (!this.handler) {\n return;\n }\n\n this.handler.receiveProps(props);\n this.receiveType(getType(props));\n }\n }, {\n key: \"receiveType\",\n value: function receiveType(type) {\n if (!this.handlerMonitor || !this.manager || !this.handlerConnector) {\n return;\n }\n\n if (type === this.currentType) {\n return;\n }\n\n this.currentType = type;\n\n var _registerHandler = registerHandler(type, this.handler, this.manager),\n _registerHandler2 = _slicedToArray(_registerHandler, 2),\n handlerId = _registerHandler2[0],\n unregister = _registerHandler2[1];\n\n this.handlerId = handlerId;\n this.handlerMonitor.receiveHandlerId(handlerId);\n this.handlerConnector.receiveHandlerId(handlerId);\n var globalMonitor = this.manager.getMonitor();\n var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, {\n handlerIds: [handlerId]\n });\n this.disposable.setDisposable(new CompositeDisposable(new Disposable(unsubscribe), new Disposable(unregister)));\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.disposable.dispose();\n\n if (this.handlerConnector) {\n this.handlerConnector.receiveHandlerId(null);\n }\n }\n }, {\n key: \"getCurrentState\",\n value: function getCurrentState() {\n if (!this.handlerConnector) {\n return {};\n }\n\n var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props);\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(isPlainObject(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);\n }\n\n return nextState;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return React.createElement(DndContext.Consumer, null, function (_ref2) {\n var dragDropManager = _ref2.dragDropManager;\n\n _this2.receiveDragDropManager(dragDropManager);\n\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(function () {\n return _this2.handlerConnector.reconnect();\n });\n }\n\n return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), {\n // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component.\n ref: isRefable(Decorated) ? _this2.decoratedRef : null\n }));\n });\n }\n }, {\n key: \"receiveDragDropManager\",\n value: function receiveDragDropManager(dragDropManager) {\n if (this.manager !== undefined) {\n return;\n }\n\n invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n\n if (dragDropManager === undefined) {\n return;\n }\n\n this.manager = dragDropManager;\n this.handlerMonitor = createMonitor(dragDropManager);\n this.handlerConnector = createConnector(dragDropManager.getBackend());\n this.handler = createHandler(this.handlerMonitor, this.decoratedRef);\n }\n }]);\n\n return DragDropContainer;\n }(React.Component);\n\n DragDropContainer.DecoratedComponent = DecoratedComponent;\n DragDropContainer.displayName = \"\".concat(containerDisplayName, \"(\").concat(displayName, \")\");\n return hoistStatics(DragDropContainer, DecoratedComponent);\n}","function _typeof(obj) { 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\nexport function isValidType(type, allowArray) {\n return typeof type === 'string' || _typeof(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) {\n return isValidType(t, false);\n });\n}","function _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\nimport { invariant } from '@react-dnd/invariant';\nimport { isPlainObject } from '../utils/js_utils';\nimport { getDecoratedComponent } from './utils';\nvar ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];\nvar REQUIRED_SPEC_METHODS = ['beginDrag'];\n\nvar SourceImpl =\n/*#__PURE__*/\nfunction () {\n function SourceImpl(spec, monitor, ref) {\n var _this = this;\n\n _classCallCheck(this, SourceImpl);\n\n this.props = null;\n\n this.beginDrag = function () {\n if (!_this.props) {\n return;\n }\n\n var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current);\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(isPlainObject(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item);\n }\n\n return item;\n };\n\n this.spec = spec;\n this.monitor = monitor;\n this.ref = ref;\n }\n\n _createClass(SourceImpl, [{\n key: \"receiveProps\",\n value: function receiveProps(props) {\n this.props = props;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n if (!this.props) {\n return false;\n }\n\n if (!this.spec.canDrag) {\n return true;\n }\n\n return this.spec.canDrag(this.props, this.monitor);\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(globalMonitor, sourceId) {\n if (!this.props) {\n return false;\n }\n\n if (!this.spec.isDragging) {\n return sourceId === globalMonitor.getSourceId();\n }\n\n return this.spec.isDragging(this.props, this.monitor);\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {\n if (!this.props) {\n return;\n }\n\n if (!this.spec.endDrag) {\n return;\n }\n\n this.spec.endDrag(this.props, this.monitor, getDecoratedComponent(this.ref));\n }\n }]);\n\n return SourceImpl;\n}();\n\nexport default function createSourceFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key);\n invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);\n });\n REQUIRED_SPEC_METHODS.forEach(function (key) {\n invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);\n });\n return function createSource(monitor, ref) {\n return new SourceImpl(spec, monitor, ref);\n };\n}","import { invariant } from '@react-dnd/invariant';\nimport { isPlainObject } from '../utils/js_utils';\nimport { checkDecoratorArguments } from './utils';\nimport decorateHandler from './decorateHandler';\nimport { registerSource } from '../common/registration';\nimport { DragSourceMonitorImpl } from '../common/DragSourceMonitorImpl';\nimport { SourceConnector } from '../common/SourceConnector';\nimport { isValidType } from '../utils/isValidType';\nimport createSourceFactory from './createSourceFactory';\n/**\n * Decorates a component as a dragsource\n * @param type The dragsource type\n * @param spec The drag source specification\n * @param collect The props collector function\n * @param options DnD options\n */\n\nexport function DragSource(type, spec, collect) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n checkDecoratorArguments('DragSource', 'type, spec, collect[, options]', type, spec, collect, options);\n var getType = type;\n\n if (typeof type !== 'function') {\n invariant(isValidType(type), 'Expected \"type\" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type);\n\n getType = function getType() {\n return type;\n };\n }\n\n invariant(isPlainObject(spec), 'Expected \"spec\" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec);\n var createSource = createSourceFactory(spec);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);\n invariant(isPlainObject(options), 'Expected \"options\" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);\n return function decorateSource(DecoratedComponent) {\n return decorateHandler({\n containerDisplayName: 'DragSource',\n createHandler: createSource,\n registerHandler: registerSource,\n createConnector: function createConnector(backend) {\n return new SourceConnector(backend);\n },\n createMonitor: function createMonitor(manager) {\n return new DragSourceMonitorImpl(manager);\n },\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options\n });\n };\n}","function _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\nimport { invariant } from '@react-dnd/invariant';\nimport { isPlainObject } from '../utils/js_utils';\nimport { getDecoratedComponent } from './utils';\nvar ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];\n\nvar TargetImpl =\n/*#__PURE__*/\nfunction () {\n function TargetImpl(spec, monitor, ref) {\n _classCallCheck(this, TargetImpl);\n\n this.props = null;\n this.spec = spec;\n this.monitor = monitor;\n this.ref = ref;\n }\n\n _createClass(TargetImpl, [{\n key: \"receiveProps\",\n value: function receiveProps(props) {\n this.props = props;\n }\n }, {\n key: \"receiveMonitor\",\n value: function receiveMonitor(monitor) {\n this.monitor = monitor;\n }\n }, {\n key: \"canDrop\",\n value: function canDrop() {\n if (!this.spec.canDrop) {\n return true;\n }\n\n return this.spec.canDrop(this.props, this.monitor);\n }\n }, {\n key: \"hover\",\n value: function hover() {\n if (!this.spec.hover) {\n return;\n }\n\n this.spec.hover(this.props, this.monitor, getDecoratedComponent(this.ref));\n }\n }, {\n key: \"drop\",\n value: function drop() {\n if (!this.spec.drop) {\n return undefined;\n }\n\n var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current);\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(typeof dropResult === 'undefined' || isPlainObject(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult);\n }\n\n return dropResult;\n }\n }]);\n\n return TargetImpl;\n}();\n\nexport default function createTargetFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key);\n invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]);\n });\n return function createTarget(monitor, ref) {\n return new TargetImpl(spec, monitor, ref);\n };\n}","import { invariant } from '@react-dnd/invariant';\nimport { isPlainObject } from '../utils/js_utils';\nimport { registerTarget } from '../common/registration';\nimport { isValidType } from '../utils/isValidType';\nimport { TargetConnector } from '../common/TargetConnector';\nimport { DropTargetMonitorImpl } from '../common/DropTargetMonitorImpl';\nimport { checkDecoratorArguments } from './utils';\nimport decorateHandler from './decorateHandler';\nimport createTargetFactory from './createTargetFactory';\nexport function DropTarget(type, spec, collect) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n checkDecoratorArguments('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options);\n var getType = type;\n\n if (typeof type !== 'function') {\n invariant(isValidType(type, true), 'Expected \"type\" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type);\n\n getType = function getType() {\n return type;\n };\n }\n\n invariant(isPlainObject(spec), 'Expected \"spec\" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec);\n var createTarget = createTargetFactory(spec);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);\n invariant(isPlainObject(options), 'Expected \"options\" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);\n return function decorateTarget(DecoratedComponent) {\n return decorateHandler({\n containerDisplayName: 'DropTarget',\n createHandler: createTarget,\n registerHandler: registerTarget,\n createMonitor: function createMonitor(manager) {\n return new DropTargetMonitorImpl(manager);\n },\n createConnector: function createConnector(backend) {\n return new TargetConnector(backend);\n },\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options\n });\n };\n}","function _typeof(obj) { 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 _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 _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\nimport * as React from 'react';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { invariant } from '@react-dnd/invariant';\nimport { DndContext } from '../index';\nimport { isPlainObject } from '../utils/js_utils';\nimport { isRefable, checkDecoratorArguments } from './utils';\nexport function DragLayer(collect) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect);\n invariant(isPlainObject(options), 'Expected \"options\" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options);\n return function decorateLayer(DecoratedComponent) {\n var Decorated = DecoratedComponent;\n var _options$arePropsEqua = options.arePropsEqual,\n arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;\n var displayName = Decorated.displayName || Decorated.name || 'Component';\n\n var DragLayerContainer =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(DragLayerContainer, _React$Component);\n\n function DragLayerContainer() {\n var _this;\n\n _classCallCheck(this, DragLayerContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DragLayerContainer).apply(this, arguments));\n _this.isCurrentlyMounted = false;\n _this.ref = React.createRef();\n\n _this.handleChange = function () {\n if (!_this.isCurrentlyMounted) {\n return;\n }\n\n var nextState = _this.getCurrentState();\n\n if (!shallowEqual(nextState, _this.state)) {\n _this.setState(nextState);\n }\n };\n\n return _this;\n }\n\n _createClass(DragLayerContainer, [{\n key: \"getDecoratedComponentInstance\",\n value: function getDecoratedComponentInstance() {\n invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');\n return this.ref.current;\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.isCurrentlyMounted = true;\n this.handleChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.isCurrentlyMounted = false;\n\n if (this.unsubscribeFromOffsetChange) {\n this.unsubscribeFromOffsetChange();\n this.unsubscribeFromOffsetChange = undefined;\n }\n\n if (this.unsubscribeFromStateChange) {\n this.unsubscribeFromStateChange();\n this.unsubscribeFromStateChange = undefined;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return React.createElement(DndContext.Consumer, null, function (_ref) {\n var dragDropManager = _ref.dragDropManager;\n\n if (dragDropManager === undefined) {\n return null;\n }\n\n _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state\n\n\n if (!_this2.isCurrentlyMounted) {\n return null;\n }\n\n return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, {\n ref: isRefable(Decorated) ? _this2.ref : null\n }));\n });\n }\n }, {\n key: \"receiveDragDropManager\",\n value: function receiveDragDropManager(dragDropManager) {\n if (this.manager !== undefined) {\n return;\n }\n\n this.manager = dragDropManager;\n invariant(_typeof(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n var monitor = this.manager.getMonitor();\n this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);\n this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);\n }\n }, {\n key: \"getCurrentState\",\n value: function getCurrentState() {\n if (!this.manager) {\n return {};\n }\n\n var monitor = this.manager.getMonitor();\n return collect(monitor, this.props);\n }\n }]);\n\n return DragLayerContainer;\n }(React.Component);\n\n DragLayerContainer.displayName = \"DragLayer(\".concat(displayName, \")\");\n DragLayerContainer.DecoratedComponent = DecoratedComponent;\n return hoistStatics(DragLayerContainer, DecoratedComponent);\n };\n}","/** @license React v16.13.0\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var k=require(\"object-assign\"),l=require(\"react\");function q(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cH;H++)F[H]=H+1;F[15]=0;\nvar qa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ra=Object.prototype.hasOwnProperty,sa={},ta={};\nfunction ua(a){if(ra.call(ta,a))return!0;if(ra.call(sa,a))return!1;if(qa.test(a))return ta[a]=!0;sa[a]=!0;return!1}function va(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction wa(a,b,c,d){if(null===b||\"undefined\"===typeof b||va(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function J(a,b,c,d,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=g}var K={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){K[a]=new J(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];K[b]=new J(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){K[a]=new J(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){K[a]=new J(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){K[a]=new J(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){K[a]=new J(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){K[a]=new J(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){K[a]=new J(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){K[a]=new J(a,5,!1,a.toLowerCase(),null,!1)});var L=/[\\-:]([a-z])/g;function M(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(L,\nM);K[b]=new J(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!1)});\nK.xlinkHref=new J(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!0)});var xa=/[\"'&<>]/;\nfunction N(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;dV))throw Error(q(301));if(a===O)if(S=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ha(){}\nvar X=0,Ia={readContext:function(a){var b=X;E(a,b);return a[b]},useContext:function(a){W();var b=X;E(a,b);return a[b]},useMemo:function(a,b){O=W();Q=Ca();b=void 0===b?null:b;if(null!==Q){var c=Q.memoizedState;if(null!==c&&null!==b){a:{var d=c[1];if(null===d)d=!1;else{for(var f=0;f=d))throw Error(q(304));var h=new Uint16Array(d);h.set(g);F=h;F[0]=c+1;for(g=c;g=\ne.children.length){var I=e.footer;\"\"!==I&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===v)this.popProvider(e.type);else if(e.type===B){this.suspenseDepth--;var G=g.pop();if(x){x=!1;var n=e.fallbackFrame;if(!n)throw Error(q(303));this.stack.push(n);g[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else g[this.suspenseDepth]+=G}g[this.suspenseDepth]+=I}else{var m=e.children[e.childIndex++],\nw=\"\";try{w+=this.render(m,e.context,e.domNamespace)}catch(r){if(null!=r&&\"function\"===typeof r.then)throw Error(q(294));throw r;}finally{}g.length<=this.suspenseDepth&&g.push(\"\");g[this.suspenseDepth]+=w}}return g[0]}finally{Qa.current=c,X=b}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return N(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+N(f);this.previousWasTextNode=!0;return N(f)}b=Za(a,b,this.threadID);a=b.child;\nb=b.context;if(null===a||!1===a)return\"\";if(!l.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===aa)throw Error(q(257));throw Error(q(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ba:case ea:case ca:case ha:case u:return a=Z(a.props.children),this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:throw Error(q(294));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case fa:O={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case ia:return a=[l.createElement(c.type,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case v:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,\ncontext:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case da:c=a.type;d=a.props;var h=this.threadID;E(c,h);c=Z(d.children(c[h]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case la:throw Error(q(338));case ja:switch(c=a.type,na(c),c._status){case 1:return a=[l.createElement(c._result,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case 2:throw c._result;default:throw Error(q(295));\n}case ma:throw Error(q(343));}throw Error(q(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===Ja.html&&Ka(c);if(!Ta.hasOwnProperty(c)){if(!Sa.test(c))throw Error(q(65,c));Ta[c]=!0}var d=a.props;if(\"input\"===c)d=k({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var h=d.value;if(null==h){h=d.defaultValue;var e=d.children;if(null!=e){if(null!=\nh)throw Error(q(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(q(93));e=e[0]}h=\"\"+e}null==h&&(h=\"\")}d=k({},d,{value:void 0,children:\"\"+h})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=k({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var I=Va(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":I;h=!1;if(Array.isArray(e))for(var n=0;n\":(z+=\">\",h=\"\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=N(e);break a}e=null}null!=e?(d=[],Ra.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(z+=\"\\n\"),z+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===\nf?Ka(a):\"http://www.w3.org/2000/svg\"===f&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:h});this.previousWasTextNode=!1;return z};return a}(),ab={renderToString:function(a){a=new $a(a,!1);try{return a.read(Infinity)}finally{a.destroy()}},renderToStaticMarkup:function(a){a=new $a(a,!0);try{return a.read(Infinity)}finally{a.destroy()}},renderToNodeStream:function(){throw Error(q(207));},renderToStaticNodeStream:function(){throw Error(q(208));\n},version:\"16.13.0\"};module.exports=ab.default||ab;\n","/** @license React v16.13.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function C(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var E={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){E[a]=new C(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];E[b]=new C(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){E[a]=new C(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){E[a]=new C(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){E[a]=new C(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){E[a]=new C(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){E[a]=new C(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){E[a]=new C(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){E[a]=new C(a,5,!1,a.toLowerCase(),null,!1)});var ob=/[\\-:]([a-z])/g;function pb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ob,\npb);E[b]=new C(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ob,pb);E[b]=new C(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ob,pb);E[b]=new C(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){E[a]=new C(a,1,!1,a.toLowerCase(),null,!1)});\nE.xlinkHref=new C(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){E[a]=new C(a,1,!1,a.toLowerCase(),null,!0)});\nfunction qb(a,b,c,d){var e=E.hasOwnProperty(b)?E[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nTa&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=Ta&&\"CompositionEvent\"in window,ke=null;Ta&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=Ta&&\"TextEvent\"in window&&!ke,me=Ta&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=Ra.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Ia(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ta&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ra:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ta){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ta?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case sa:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(Ga(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=pa.ReactCurrentDispatcher,kh=pa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Ja(g))}S!==jj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=\nh;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}function Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}\nfunction Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Ha(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime= minSize && file.size <= maxSize;else if (isDefined(minSize)) return file.size >= minSize;else if (isDefined(maxSize)) return file.size <= maxSize;\n }\n\n return true;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple;\n\n if (!multiple && files.length > 1) {\n return false;\n }\n\n return files.every(function (file) {\n return fileAccepted(file, accept) && fileMatchSize(file, minSize, maxSize);\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, [\"open\"]);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return React.createElement(Fragment, null, children(_objectSpread({}, props, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone';\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {File[]} params.rejectedFiles Rejected files\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are droppped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {File[]} rejectedFiles\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {object[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {File[]} rejectedFiles List of rejected files\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {File[]} rejectedFiles Rejected files\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n rejectedFiles: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are droppped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n accept = _ref2.accept,\n _ref2$disabled = _ref2.disabled,\n disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,\n _ref2$getFilesFromEve = _ref2.getFilesFromEvent,\n getFilesFromEvent = _ref2$getFilesFromEve === void 0 ? fromEvent : _ref2$getFilesFromEve,\n _ref2$maxSize = _ref2.maxSize,\n maxSize = _ref2$maxSize === void 0 ? Infinity : _ref2$maxSize,\n _ref2$minSize = _ref2.minSize,\n minSize = _ref2$minSize === void 0 ? 0 : _ref2$minSize,\n _ref2$multiple = _ref2.multiple,\n multiple = _ref2$multiple === void 0 ? true : _ref2$multiple,\n onDragEnter = _ref2.onDragEnter,\n onDragLeave = _ref2.onDragLeave,\n onDragOver = _ref2.onDragOver,\n onDrop = _ref2.onDrop,\n onDropAccepted = _ref2.onDropAccepted,\n onDropRejected = _ref2.onDropRejected,\n onFileDialogCancel = _ref2.onFileDialogCancel,\n _ref2$preventDropOnDo = _ref2.preventDropOnDocument,\n preventDropOnDocument = _ref2$preventDropOnDo === void 0 ? true : _ref2$preventDropOnDo,\n _ref2$noClick = _ref2.noClick,\n noClick = _ref2$noClick === void 0 ? false : _ref2$noClick,\n _ref2$noKeyboard = _ref2.noKeyboard,\n noKeyboard = _ref2$noKeyboard === void 0 ? false : _ref2$noKeyboard,\n _ref2$noDrag = _ref2.noDrag,\n noDrag = _ref2$noDrag === void 0 ? false : _ref2$noDrag,\n _ref2$noDragEventsBub = _ref2.noDragEventsBubbling,\n noDragEventsBubbling = _ref2$noDragEventsBub === void 0 ? false : _ref2$noDragEventsBub;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event); // Count the dropzone and any children that are entered.\n\n if (dragTargetsRef.current.indexOf(event.target) === -1) {\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n }\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n\n if (event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (isEvtWithFiles(event) && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return target !== event.target && rootRef.current && rootRef.current.contains(target);\n });\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var rejectedFiles = [];\n files.forEach(function (file) {\n if (fileAccepted(file, accept) && fileMatchSize(file, minSize, maxSize)) {\n acceptedFiles.push(file);\n } else {\n rejectedFiles.push(file);\n }\n });\n\n if (!multiple && acceptedFiles.length > 1) {\n rejectedFiles.push.apply(rejectedFiles, _toConsumableArray(acceptedFiles.splice(0))); // Reject everything and empty accepted files\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n rejectedFiles: rejectedFiles,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, rejectedFiles, event);\n }\n\n if (rejectedFiles.length > 0 && onDropRejected) {\n onDropRejected(rejectedFiles, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onKeyDown = _ref3.onKeyDown,\n onFocus = _ref3.onFocus,\n onBlur = _ref3.onBlur,\n onClick = _ref3.onClick,\n onDragEnter = _ref3.onDragEnter,\n onDragOver = _ref3.onDragOver,\n onDragLeave = _ref3.onDragLeave,\n onDrop = _ref3.onDrop,\n rest = _objectWithoutProperties(_ref3, [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"]);\n\n return _objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}, {}, rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n onChange = _ref4.onChange,\n onClick = _ref4.onClick,\n rest = _objectWithoutProperties(_ref4, [\"refKey\", \"onChange\", \"onClick\"]);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread({}, inputProps, {}, rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread({}, state, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread({}, state, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread({}, state, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread({}, state, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread({}, state, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread({}, state, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread({}, state, {\n acceptedFiles: action.acceptedFiles,\n rejectedFiles: action.rejectedFiles\n });\n\n case 'reset':\n return _objectSpread({}, state, {\n isFileDialogActive: false,\n isDragActive: false,\n draggedFiles: [],\n acceptedFiles: [],\n rejectedFiles: []\n });\n\n default:\n return state;\n }\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck'));\nvar _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));\nvar _possibleConstructorReturn = _interopDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));\nvar _getPrototypeOf = _interopDefault(require('@babel/runtime/helpers/getPrototypeOf'));\nvar _inherits = _interopDefault(require('@babel/runtime/helpers/inherits'));\nvar _typeof = _interopDefault(require('@babel/runtime/helpers/typeof'));\nvar _objectWithoutProperties = _interopDefault(require('@babel/runtime/helpers/objectWithoutProperties'));\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar React = _interopDefault(require('react'));\nvar PropTypes = _interopDefault(require('prop-types'));\nvar warning = _interopDefault(require('warning'));\n\nfunction defineProperty(object, property, attr) {\n return Object.defineProperty(object, property, attr);\n} // Passive options\n// Inspired by https://github.com/Modernizr/Modernizr/blob/master/feature-detects/dom/passiveeventlisteners.js\n\n\nvar passiveOption = function () {\n var cache = null;\n return function () {\n if (cache !== null) {\n return cache;\n }\n\n var supportsPassiveOption = false;\n\n try {\n window.addEventListener('test', null, defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n }));\n } catch (err) {//\n }\n\n cache = supportsPassiveOption;\n return supportsPassiveOption;\n }();\n}();\n\nvar defaultEventOptions = {\n capture: false,\n passive: false\n};\n\nfunction mergeDefaultEventOptions(options) {\n return _extends({}, defaultEventOptions, options);\n}\n\nfunction getEventListenerArgs(eventName, callback, options) {\n var args = [eventName, callback];\n args.push(passiveOption ? options : options.capture);\n return args;\n}\n\nfunction on(target, eventName, callback, options) {\n // eslint-disable-next-line prefer-spread\n target.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction off(target, eventName, callback, options) {\n // eslint-disable-next-line prefer-spread\n target.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction forEachListener(props, iteratee) {\n var children = props.children,\n target = props.target,\n eventProps = _objectWithoutProperties(props, [\"children\", \"target\"]);\n\n Object.keys(eventProps).forEach(function (name) {\n if (name.substring(0, 2) !== 'on') {\n return;\n }\n\n var prop = eventProps[name];\n\n var type = _typeof(prop);\n\n var isObject = type === 'object';\n var isFunction = type === 'function';\n\n if (!isObject && !isFunction) {\n return;\n }\n\n var capture = name.substr(-7).toLowerCase() === 'capture';\n var eventName = name.substring(2).toLowerCase();\n eventName = capture ? eventName.substring(0, eventName.length - 7) : eventName;\n\n if (isObject) {\n iteratee(eventName, prop.handler, prop.options);\n } else {\n iteratee(eventName, prop, mergeDefaultEventOptions({\n capture: capture\n }));\n }\n });\n}\n\nfunction withOptions(handler, options) {\n process.env.NODE_ENV !== \"production\" ? warning(options, 'react-event-listener: should be specified options in withOptions.') : void 0;\n return {\n handler: handler,\n options: mergeDefaultEventOptions(options)\n };\n}\n\nvar EventListener =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(EventListener, _React$PureComponent);\n\n function EventListener() {\n _classCallCheck(this, EventListener);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(EventListener).apply(this, arguments));\n }\n\n _createClass(EventListener, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.applyListeners(on);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.applyListeners(off, prevProps);\n this.applyListeners(on);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.applyListeners(off);\n }\n }, {\n key: \"applyListeners\",\n value: function applyListeners(onOrOff) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props;\n var target = props.target;\n\n if (target) {\n var element = target;\n\n if (typeof target === 'string') {\n element = window[target];\n }\n\n forEachListener(props, onOrOff.bind(null, element));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children || null;\n }\n }]);\n\n return EventListener;\n}(React.PureComponent);\n\nEventListener.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * You can provide a single child too.\n */\n children: PropTypes.node,\n\n /**\n * The DOM target to listen to.\n */\n target: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired\n} : {};\n\nexports.withOptions = withOptions;\nexports.default = EventListener;\n","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}\n\nmodule.exports = _assertThisInitialized;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","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}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","import hotkeys from 'hotkeys-js';\nimport { useRef, useCallback, useEffect } from 'react';\n\nfunction useIsHotkeyPressed() {\n return hotkeys.isPressed;\n}\n\nfunction useHotkeys(keys, callback, options, deps) {\n if (options instanceof Array) {\n deps = options;\n options = undefined;\n }\n const { enableOnTags, filter } = options || {};\n const ref = useRef(null);\n const memoisedCallback = useCallback((keyboardEvent, hotkeysEvent) => {\n if (ref.current === null || document.activeElement === ref.current) {\n callback(keyboardEvent, hotkeysEvent);\n return true;\n }\n return false;\n }, deps ? [ref, ...deps] : [ref]);\n useEffect(() => {\n if (options && options.enableOnTags) {\n hotkeys.filter = ({ target, srcElement }) => {\n // @ts-ignore\n const targetTagName = (target && target.tagName) || (srcElement && srcElement.tagName);\n return Boolean(targetTagName && enableOnTags && enableOnTags.includes(targetTagName));\n };\n }\n if (filter)\n hotkeys.filter = filter;\n hotkeys(keys, options || {}, memoisedCallback);\n return () => hotkeys.unbind(keys, memoisedCallback);\n }, [memoisedCallback, options, enableOnTags, filter, keys]);\n return ref;\n}\n\nexport { useHotkeys, useIsHotkeyPressed };\n//# sourceMappingURL=index.js.map\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('./index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar getDisplayName = function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nexports.default = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function lazyload(WrappedComponent) {\n return function (_Component) {\n _inherits(LazyLoadDecorated, _Component);\n\n function LazyLoadDecorated() {\n _classCallCheck(this, LazyLoadDecorated);\n\n var _this = _possibleConstructorReturn(this, (LazyLoadDecorated.__proto__ || Object.getPrototypeOf(LazyLoadDecorated)).call(this));\n\n _this.displayName = 'LazyLoad' + getDisplayName(WrappedComponent);\n return _this;\n }\n\n _createClass(LazyLoadDecorated, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _index2.default,\n options,\n _react2.default.createElement(WrappedComponent, this.props)\n );\n }\n }]);\n\n return LazyLoadDecorated;\n }(_react.Component);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.forceCheck = exports.lazyload = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _event = require('./utils/event');\n\nvar _scrollParent = require('./utils/scrollParent');\n\nvar _scrollParent2 = _interopRequireDefault(_scrollParent);\n\nvar _debounce = require('./utils/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _throttle = require('./utils/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _decorator = require('./decorator');\n\nvar _decorator2 = _interopRequireDefault(_decorator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n * react-lazyload\n */\n\n\nvar defaultBoundingClientRect = { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\nvar LISTEN_FLAG = 'data-lazyload-listened';\nvar listeners = [];\nvar pending = [];\n\n// try to handle passive events\nvar passiveEventSupported = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveEventSupported = true;\n }\n });\n window.addEventListener('test', null, opts);\n} catch (e) {}\n// if they are supported, setup the optional params\n// IMPORTANT: FALSE doubles as the default CAPTURE value!\nvar passiveEvent = passiveEventSupported ? { capture: false, passive: true } : false;\n\n/**\n * Check if `component` is visible in overflow container `parent`\n * @param {node} component React component\n * @param {node} parent component's scroll parent\n * @return {bool}\n */\nvar checkOverflowVisible = function checkOverflowVisible(component, parent) {\n var node = _reactDom2.default.findDOMNode(component);\n\n var parentTop = void 0;\n var parentHeight = void 0;\n\n try {\n var _parent$getBoundingCl = parent.getBoundingClientRect();\n\n parentTop = _parent$getBoundingCl.top;\n parentHeight = _parent$getBoundingCl.height;\n } catch (e) {\n parentTop = defaultBoundingClientRect.top;\n parentHeight = defaultBoundingClientRect.height;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n // calculate top and height of the intersection of the element's scrollParent and viewport\n var intersectionTop = Math.max(parentTop, 0); // intersection's top relative to viewport\n var intersectionHeight = Math.min(windowInnerHeight, parentTop + parentHeight) - intersectionTop; // height\n\n // check whether the element is visible in the intersection\n var top = void 0;\n var height = void 0;\n\n try {\n var _node$getBoundingClie = node.getBoundingClientRect();\n\n top = _node$getBoundingClie.top;\n height = _node$getBoundingClie.height;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n height = defaultBoundingClientRect.height;\n }\n\n var offsetTop = top - intersectionTop; // element's top relative to intersection\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return offsetTop - offsets[0] <= intersectionHeight && offsetTop + height + offsets[1] >= 0;\n};\n\n/**\n * Check if `component` is visible in document\n * @param {node} component React component\n * @return {bool}\n */\nvar checkNormalVisible = function checkNormalVisible(component) {\n var node = _reactDom2.default.findDOMNode(component);\n\n // If this element is hidden by css rules somehow, it's definitely invisible\n if (!(node.offsetWidth || node.offsetHeight || node.getClientRects().length)) return false;\n\n var top = void 0;\n var elementHeight = void 0;\n\n try {\n var _node$getBoundingClie2 = node.getBoundingClientRect();\n\n top = _node$getBoundingClie2.top;\n elementHeight = _node$getBoundingClie2.height;\n } catch (e) {\n top = defaultBoundingClientRect.top;\n elementHeight = defaultBoundingClientRect.height;\n }\n\n var windowInnerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n var offsets = Array.isArray(component.props.offset) ? component.props.offset : [component.props.offset, component.props.offset]; // Be compatible with previous API\n\n return top - offsets[0] <= windowInnerHeight && top + elementHeight + offsets[1] >= 0;\n};\n\n/**\n * Detect if element is visible in viewport, if so, set `visible` state to true.\n * If `once` prop is provided true, remove component as listener after checkVisible\n *\n * @param {React} component React component that respond to scroll and resize\n */\nvar checkVisible = function checkVisible(component) {\n var node = _reactDom2.default.findDOMNode(component);\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n var parent = (0, _scrollParent2.default)(node);\n var isOverflow = component.props.overflow && parent !== node.ownerDocument && parent !== document && parent !== document.documentElement;\n var visible = isOverflow ? checkOverflowVisible(component, parent) : checkNormalVisible(component);\n if (visible) {\n // Avoid extra render if previously is visible\n if (!component.visible) {\n if (component.props.once) {\n pending.push(component);\n }\n\n component.visible = true;\n component.forceUpdate();\n }\n } else if (!(component.props.once && component.visible)) {\n component.visible = false;\n if (component.props.unmountIfInvisible) {\n component.forceUpdate();\n }\n }\n};\n\nvar purgePending = function purgePending() {\n pending.forEach(function (component) {\n var index = listeners.indexOf(component);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n });\n\n pending = [];\n};\n\nvar lazyLoadHandler = function lazyLoadHandler() {\n for (var i = 0; i < listeners.length; ++i) {\n var listener = listeners[i];\n checkVisible(listener);\n }\n // Remove `once` component in listeners\n purgePending();\n};\n\n// Depending on component's props\nvar delayType = void 0;\nvar finalLazyLoadHandler = null;\n\nvar isString = function isString(string) {\n return typeof string === 'string';\n};\n\nvar LazyLoad = function (_Component) {\n _inherits(LazyLoad, _Component);\n\n function LazyLoad(props) {\n _classCallCheck(this, LazyLoad);\n\n var _this = _possibleConstructorReturn(this, (LazyLoad.__proto__ || Object.getPrototypeOf(LazyLoad)).call(this, props));\n\n _this.visible = false;\n return _this;\n }\n\n _createClass(LazyLoad, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // It's unlikely to change delay type on the fly, this is mainly\n // designed for tests\n var scrollport = window;\n var scrollContainer = this.props.scrollContainer;\n\n if (scrollContainer) {\n if (isString(scrollContainer)) {\n scrollport = scrollport.document.querySelector(scrollContainer);\n }\n }\n var needResetFinalLazyLoadHandler = this.props.debounce !== undefined && delayType === 'throttle' || delayType === 'debounce' && this.props.debounce === undefined;\n\n if (needResetFinalLazyLoadHandler) {\n (0, _event.off)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n finalLazyLoadHandler = null;\n }\n\n if (!finalLazyLoadHandler) {\n if (this.props.debounce !== undefined) {\n finalLazyLoadHandler = (0, _debounce2.default)(lazyLoadHandler, typeof this.props.debounce === 'number' ? this.props.debounce : 300);\n delayType = 'debounce';\n } else if (this.props.throttle !== undefined) {\n finalLazyLoadHandler = (0, _throttle2.default)(lazyLoadHandler, typeof this.props.throttle === 'number' ? this.props.throttle : 300);\n delayType = 'throttle';\n } else {\n finalLazyLoadHandler = lazyLoadHandler;\n }\n }\n\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = 1 + +parent.getAttribute(LISTEN_FLAG);\n if (listenerCount === 1) {\n parent.addEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n }\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n } else if (listeners.length === 0 || needResetFinalLazyLoadHandler) {\n var _props = this.props,\n scroll = _props.scroll,\n resize = _props.resize;\n\n\n if (scroll) {\n (0, _event.on)(scrollport, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n\n if (resize) {\n (0, _event.on)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n }\n }\n\n listeners.push(this);\n checkVisible(this);\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return this.visible;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.overflow) {\n var parent = (0, _scrollParent2.default)(_reactDom2.default.findDOMNode(this));\n if (parent && typeof parent.getAttribute === 'function') {\n var listenerCount = +parent.getAttribute(LISTEN_FLAG) - 1;\n if (listenerCount === 0) {\n parent.removeEventListener('scroll', finalLazyLoadHandler, passiveEvent);\n parent.removeAttribute(LISTEN_FLAG);\n } else {\n parent.setAttribute(LISTEN_FLAG, listenerCount);\n }\n }\n }\n\n var index = listeners.indexOf(this);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length === 0) {\n (0, _event.off)(window, 'resize', finalLazyLoadHandler, passiveEvent);\n (0, _event.off)(window, 'scroll', finalLazyLoadHandler, passiveEvent);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.visible ? this.props.children : this.props.placeholder ? this.props.placeholder : _react2.default.createElement('div', { style: { height: this.props.height }, className: 'lazyload-placeholder' });\n }\n }]);\n\n return LazyLoad;\n}(_react.Component);\n\nLazyLoad.propTypes = {\n once: _propTypes2.default.bool,\n height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n offset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),\n overflow: _propTypes2.default.bool,\n resize: _propTypes2.default.bool,\n scroll: _propTypes2.default.bool,\n children: _propTypes2.default.node,\n throttle: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n debounce: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool]),\n placeholder: _propTypes2.default.node,\n scrollContainer: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n unmountIfInvisible: _propTypes2.default.bool\n};\n\nLazyLoad.defaultProps = {\n once: false,\n offset: 0,\n overflow: false,\n resize: false,\n scroll: true,\n unmountIfInvisible: false\n};\n\nvar lazyload = exports.lazyload = _decorator2.default;\nexports.default = LazyLoad;\nexports.forceCheck = lazyLoadHandler;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = debounce;\nfunction debounce(func, wait, immediate) {\n var timeout = void 0;\n var args = void 0;\n var context = void 0;\n var timestamp = void 0;\n var result = void 0;\n\n var later = function later() {\n var last = +new Date() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) {\n context = null;\n args = null;\n }\n }\n }\n };\n\n return function debounced() {\n context = this;\n args = arguments;\n timestamp = +new Date();\n\n var callNow = immediate && !timeout;\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n\n if (callNow) {\n result = func.apply(context, args);\n context = null;\n args = null;\n }\n\n return result;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.on = on;\nexports.off = off;\nfunction on(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.addEventListener) {\n el.addEventListener(eventName, callback, opts);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\" + eventName, function (e) {\n callback.call(el, e || window.event);\n });\n }\n}\n\nfunction off(el, eventName, callback, opts) {\n opts = opts || false;\n if (el.removeEventListener) {\n el.removeEventListener(eventName, callback, opts);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + eventName, callback);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * @fileOverview Find scroll parent\n */\n\nexports.default = function (node) {\n if (!(node instanceof HTMLElement)) {\n return document.documentElement;\n }\n\n var excludeStaticParent = node.style.position === 'absolute';\n var overflowRegex = /(scroll|auto)/;\n var parent = node;\n\n while (parent) {\n if (!parent.parentNode) {\n return node.ownerDocument || document.documentElement;\n }\n\n var style = window.getComputedStyle(parent);\n var position = style.position;\n var overflow = style.overflow;\n var overflowX = style['overflow-x'];\n var overflowY = style['overflow-y'];\n\n if (position === 'static' && excludeStaticParent) {\n parent = parent.parentNode;\n continue;\n }\n\n if (overflowRegex.test(overflow) && overflowRegex.test(overflowX) && overflowRegex.test(overflowY)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return node.ownerDocument || node.documentElement || document.documentElement;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = throttle;\n/*eslint-disable */\nfunction throttle(fn, threshhold, scope) {\n threshhold || (threshhold = 250);\n var last, deferTimer;\n return function () {\n var context = scope || this;\n\n var now = +new Date(),\n args = arguments;\n if (last && now < last + threshhold) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \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\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\tvar _react = __webpack_require__(1);\n\n\tvar _react2 = _interopRequireDefault(_react);\n\n\tvar _propTypes = __webpack_require__(2);\n\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\tvar KEYCODE_UP = 38;\n\tvar KEYCODE_DOWN = 40;\n\tvar IS_BROWSER = typeof document != 'undefined';\n\tvar RE_NUMBER = /^[+-]?((\\.\\d+)|(\\d+(\\.\\d+)?))$/;\n\tvar RE_INCOMPLETE_NUMBER = /^([+-]|\\.0*|[+-]\\.0*|[+-]?\\d+\\.)?$/;\n\n\tfunction addClass(element, className) {\n\t if (element.classList) {\n\t return element.classList.add(className);\n\t }\n\t if (!element.className.search(new RegExp(\"\\\\b\" + className + \"\\\\b\"))) {\n\t element.className = \" \" + className;\n\t }\n\t}\n\n\tfunction removeClass(element, className) {\n\t if (element.className) {\n\t if (element.classList) {\n\t return element.classList.remove(className);\n\t }\n\n\t element.className = element.className.replace(new RegExp(\"\\\\b\" + className + \"\\\\b\", \"g\"), \"\");\n\t }\n\t}\n\n\tfunction access(object, prop, defaultValue) {\n\t var result = object[prop];\n\t if (typeof result == \"function\") {\n\t for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n\t args[_key - 3] = arguments[_key];\n\t }\n\n\t result = result.apply(undefined, args);\n\t }\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tvar NumericInput = function (_Component) {\n\t _inherits(NumericInput, _Component);\n\n\t function NumericInput() {\n\t var _ref;\n\n\t _classCallCheck(this, NumericInput);\n\n\t for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t args[_key2] = arguments[_key2];\n\t }\n\n\t var _this = _possibleConstructorReturn(this, (_ref = NumericInput.__proto__ || Object.getPrototypeOf(NumericInput)).call.apply(_ref, [this].concat(args)));\n\n\t _this._isStrict = !!_this.props.strict;\n\n\t _this.state = _extends({\n\t btnDownHover: false,\n\t btnDownActive: false,\n\t btnUpHover: false,\n\t btnUpActive: false,\n\t inputFocus: false,\n\n\t stringValue: \"\"\n\t }, _this._propsToState(_this.props));\n\n\t _this.stop = _this.stop.bind(_this);\n\t _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n\t return _this;\n\t }\n\n\t _createClass(NumericInput, [{\n\t key: '_propsToState',\n\t value: function _propsToState(props) {\n\t var out = {};\n\n\t if (props.hasOwnProperty(\"value\")) {\n\t out.stringValue = String(props.value || props.value === 0 ? props.value : '').trim();\n\n\t out.value = out.stringValue !== '' ? this._parse(props.value) : null;\n\t } else if (!this._isMounted && props.hasOwnProperty(\"defaultValue\")) {\n\t out.stringValue = String(props.defaultValue || props.defaultValue === 0 ? props.defaultValue : '').trim();\n\n\t out.value = props.defaultValue !== '' ? this._parse(props.defaultValue) : null;\n\t }\n\n\t return out;\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(props) {\n\t var _this2 = this;\n\n\t this._isStrict = !!props.strict;\n\t var nextState = this._propsToState(props);\n\t if (Object.keys(nextState).length) {\n\t this._ignoreValueChange = true;\n\t this.setState(nextState, function () {\n\t _this2._ignoreValueChange = false;\n\t });\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate() {\n\t this.saveSelection();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t if (!this._ignoreValueChange && prevState.value !== this.state.value && (!isNaN(this.state.value) || this.state.value === null)) {\n\t this._invokeEventCallback(\"onChange\", this.state.value, this.refs.input.value, this.refs.input);\n\t }\n\n\t if (this.state.inputFocus) {\n\t this.refs.input.focus();\n\n\t if (this.state.selectionStart || this.state.selectionStart === 0) {\n\t this.refs.input.selectionStart = this.state.selectionStart;\n\t }\n\n\t if (this.state.selectionEnd || this.state.selectionEnd === 0) {\n\t this.refs.input.selectionEnd = this.state.selectionEnd;\n\t }\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._isMounted = false;\n\t this.stop();\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this3 = this;\n\n\t this._isMounted = true;\n\t this.refs.input.getValueAsNumber = function () {\n\t return _this3.state.value || 0;\n\t };\n\n\t this.refs.input.setValue = function (value) {\n\t _this3.setState({\n\t value: _this3._parse(value),\n\t stringValue: value\n\t });\n\t };\n\n\t if (!this.state.inputFocus && IS_BROWSER && document.activeElement === this.refs.input) {\n\t this.state.inputFocus = true;\n\t this.refs.input.focus();\n\t this._invokeEventCallback(\"onFocus\", {\n\t target: this.refs.input,\n\t type: \"focus\"\n\t });\n\t }\n\n\t this.checkValidity();\n\t }\n\t }, {\n\t key: 'saveSelection',\n\t value: function saveSelection() {\n\t this.state.selectionStart = this.refs.input.selectionStart;\n\t this.state.selectionEnd = this.refs.input.selectionEnd;\n\t }\n\t }, {\n\t key: 'checkValidity',\n\t value: function checkValidity() {\n\t var valid = void 0,\n\t validationError = \"\";\n\n\t var supportsValidation = !!this.refs.input.checkValidity;\n\n\t var noValidate = !!(this.props.noValidate && this.props.noValidate != \"false\");\n\n\t this.refs.input.noValidate = noValidate;\n\n\t valid = noValidate || !supportsValidation;\n\n\t if (valid) {\n\t validationError = \"\";\n\t } else {\n\t if (this.refs.input.pattern === \"\") {\n\t this.refs.input.pattern = this.props.required ? \".+\" : \".*\";\n\t }\n\n\t if (supportsValidation) {\n\t this.refs.input.checkValidity();\n\t valid = this.refs.input.validity.valid;\n\n\t if (!valid) {\n\t validationError = this.refs.input.validationMessage;\n\t }\n\t }\n\n\t if (valid && supportsValidation && this.props.maxLength) {\n\t if (this.refs.input.value.length > this.props.maxLength) {\n\t validationError = \"This value is too long\";\n\t }\n\t }\n\t }\n\n\t validationError = validationError || (valid ? \"\" : this.refs.input.validationMessage || \"Unknown Error\");\n\n\t var validStateChanged = this._valid !== validationError;\n\t this._valid = validationError;\n\t if (validationError) {\n\t addClass(this.refs.wrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onInvalid\", validationError, this.state.value, this.refs.input.value);\n\t }\n\t } else {\n\t removeClass(this.refs.wrapper, \"has-error\");\n\t if (validStateChanged) {\n\t this._invokeEventCallback(\"onValid\", this.state.value, this.refs.input.value);\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_toNumber',\n\t value: function _toNumber(x) {\n\t var n = parseFloat(x);\n\t if (isNaN(n) || !isFinite(n)) {\n\t n = 0;\n\t }\n\n\t if (this._isStrict) {\n\t var precision = access(this.props, \"precision\", null, this);\n\t var q = Math.pow(10, precision === null ? 10 : precision);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t n = Math.min(Math.max(n, _min), _max);\n\t n = Math.round(n * q) / q;\n\t }\n\n\t return n;\n\t }\n\t }, {\n\t key: '_parse',\n\t value: function _parse(x) {\n\t x = String(x);\n\t if (typeof this.props.parse == 'function') {\n\t return parseFloat(this.props.parse(x));\n\t }\n\t return parseFloat(x);\n\t }\n\t }, {\n\t key: '_format',\n\t value: function _format(n) {\n\t var _n = this._toNumber(n);\n\t var precision = access(this.props, \"precision\", null, this);\n\t if (precision !== null) {\n\t _n = n.toFixed(precision);\n\t }\n\n\t _n += \"\";\n\n\t if (this.props.format) {\n\t return this.props.format(_n);\n\t }\n\n\t return _n;\n\t }\n\t }, {\n\t key: '_step',\n\t value: function _step(n, callback) {\n\t var _isStrict = this._isStrict;\n\t this._isStrict = true;\n\n\t var _step = +access(this.props, \"step\", NumericInput.defaultProps.step, this, n > 0 ? NumericInput.DIRECTION_UP : NumericInput.DIRECTION_DOWN);\n\n\t var _n = this._toNumber((this.state.value || 0) + _step * n);\n\n\t if (this.props.snap) {\n\t _n = Math.round(_n / _step) * _step;\n\t }\n\n\t this._isStrict = _isStrict;\n\n\t if (_n !== this.state.value) {\n\t this.setState({ value: _n, stringValue: _n + \"\" }, callback);\n\t return true;\n\t }\n\n\t return false;\n\t }\n\t }, {\n\t key: '_onKeyDown',\n\t value: function _onKeyDown() {\n\t for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n\t args[_key3] = arguments[_key3];\n\t }\n\n\t args[0].persist();\n\t this._invokeEventCallback.apply(this, [\"onKeyDown\"].concat(args));\n\t var e = args[0];\n\t if (!e.isDefaultPrevented()) {\n\t if (e.keyCode === KEYCODE_UP) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? 0.1 : e.shiftKey ? 10 : 1);\n\t } else if (e.keyCode === KEYCODE_DOWN) {\n\t e.preventDefault();\n\t this._step(e.ctrlKey || e.metaKey ? -0.1 : e.shiftKey ? -10 : -1);\n\t } else {\n\t var _value = this.refs.input.value,\n\t length = _value.length;\n\t if (e.keyCode === 8) {\n\t if (this.refs.input.selectionStart == this.refs.input.selectionEnd && this.refs.input.selectionEnd > 0 && _value.length && _value.charAt(this.refs.input.selectionEnd - 1) === \".\") {\n\t e.preventDefault();\n\t this.refs.input.selectionStart = this.refs.input.selectionEnd = this.refs.input.selectionEnd - 1;\n\t }\n\t } else if (e.keyCode === 46) {\n\t if (this.refs.input.selectionStart == this.refs.input.selectionEnd && this.refs.input.selectionEnd < length + 1 && _value.length && _value.charAt(this.refs.input.selectionEnd) === \".\") {\n\t e.preventDefault();\n\t this.refs.input.selectionStart = this.refs.input.selectionEnd = this.refs.input.selectionEnd + 1;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this._timer) {\n\t clearTimeout(this._timer);\n\t }\n\t }\n\t }, {\n\t key: 'increase',\n\t value: function increase() {\n\t var _this4 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(1, callback);\n\t var _max = +access(this.props, \"max\", NumericInput.defaultProps.max, this);\n\t if (isNaN(this.state.value) || +this.state.value < _max) {\n\t this._timer = setTimeout(function () {\n\t _this4.increase(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'decrease',\n\t value: function decrease() {\n\t var _this5 = this;\n\n\t var _recursive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\t var callback = arguments[1];\n\n\t this.stop();\n\t this._step(-1, callback);\n\t var _min = +access(this.props, \"min\", NumericInput.defaultProps.min, this);\n\t if (isNaN(this.state.value) || +this.state.value > _min) {\n\t this._timer = setTimeout(function () {\n\t _this5.decrease(true);\n\t }, _recursive ? NumericInput.SPEED : NumericInput.DELAY);\n\t }\n\t }\n\t }, {\n\t key: 'onMouseDown',\n\t value: function onMouseDown(dir, callback) {\n\t if (dir == 'down') {\n\t this.decrease(false, callback);\n\t } else if (dir == 'up') {\n\t this.increase(false, callback);\n\t }\n\t }\n\t }, {\n\t key: 'onTouchStart',\n\t value: function onTouchStart(dir, e) {\n\t e.preventDefault();\n\t if (dir == 'down') {\n\t this.decrease();\n\t } else if (dir == 'up') {\n\t this.increase();\n\t }\n\t }\n\t }, {\n\t key: 'onTouchEnd',\n\t value: function onTouchEnd(e) {\n\t e.preventDefault();\n\t this.stop();\n\t }\n\t }, {\n\t key: '_invokeEventCallback',\n\t value: function _invokeEventCallback(callbackName) {\n\t if (typeof this.props[callbackName] == \"function\") {\n\t var _props$callbackName;\n\n\t for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n\t args[_key4 - 1] = arguments[_key4];\n\t }\n\n\t (_props$callbackName = this.props[callbackName]).call.apply(_props$callbackName, [null].concat(args));\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this6 = this;\n\n\t var props = this.props;\n\t var state = this.state;\n\t var css = {};\n\n\t var _props = this.props,\n\t step = _props.step,\n\t min = _props.min,\n\t max = _props.max,\n\t precision = _props.precision,\n\t parse = _props.parse,\n\t format = _props.format,\n\t mobile = _props.mobile,\n\t snap = _props.snap,\n\t value = _props.value,\n\t type = _props.type,\n\t style = _props.style,\n\t defaultValue = _props.defaultValue,\n\t onInvalid = _props.onInvalid,\n\t onValid = _props.onValid,\n\t strict = _props.strict,\n\t rest = _objectWithoutProperties(_props, ['step', 'min', 'max', 'precision', 'parse', 'format', 'mobile', 'snap', 'value', 'type', 'style', 'defaultValue', 'onInvalid', 'onValid', 'strict']);\n\n\t for (var x in NumericInput.style) {\n\t css[x] = _extends({}, NumericInput.style[x], style ? style[x] || {} : {});\n\t }\n\n\t var hasFormControl = props.className && /\\bform-control\\b/.test(props.className);\n\n\t if (mobile == 'auto') {\n\t mobile = IS_BROWSER && 'ontouchstart' in document;\n\t }\n\n\t if (typeof mobile == \"function\") {\n\t mobile = mobile.call(this);\n\t }\n\t mobile = !!mobile;\n\n\t var attrs = {\n\t wrap: {\n\t style: style === false ? null : css.wrap,\n\t className: 'react-numeric-input',\n\t ref: 'wrapper',\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined\n\t },\n\t input: _extends({\n\t ref: 'input',\n\t type: 'text',\n\t style: style === false ? null : _extends({}, css.input, !hasFormControl ? css['input:not(.form-control)'] : {}, state.inputFocus ? css['input:focus'] : {})\n\t }, rest),\n\t btnUp: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: style === false ? null : _extends({}, css.btn, css.btnUp, props.disabled ? css['btn:disabled'] : state.btnUpActive ? css['btn:active'] : state.btnUpHover ? css['btn:hover'] : {})\n\t },\n\t btnDown: {\n\t onMouseEnter: undefined,\n\t onMouseDown: undefined,\n\t onMouseUp: undefined,\n\t onMouseLeave: undefined,\n\t onTouchStart: undefined,\n\t onTouchEnd: undefined,\n\t style: style === false ? null : _extends({}, css.btn, css.btnDown, props.disabled ? css['btn:disabled'] : state.btnDownActive ? css['btn:active'] : state.btnDownHover ? css['btn:hover'] : {})\n\t }\n\t };\n\n\t var stringValue = String(state.stringValue || (state.value || state.value === 0 ? state.value : \"\") || \"\");\n\n\t if (RE_INCOMPLETE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (!this._isStrict && stringValue && !RE_NUMBER.test(stringValue)) {\n\t attrs.input.value = stringValue;\n\t } else if (state.value || state.value === 0) {\n\t attrs.input.value = this._format(state.value);\n\t } else {\n\t attrs.input.value = \"\";\n\t }\n\n\t if (hasFormControl && style !== false) {\n\t _extends(attrs.wrap.style, css['wrap.hasFormControl']);\n\t }\n\n\t if (mobile && style !== false) {\n\t _extends(attrs.input.style, css['input.mobile']);\n\t _extends(attrs.btnUp.style, css['btnUp.mobile']);\n\t _extends(attrs.btnDown.style, css['btnDown.mobile']);\n\t }\n\n\t if (!props.disabled) {\n\t _extends(attrs.wrap, {\n\t onMouseUp: this.stop,\n\t onMouseLeave: this.stop\n\t });\n\n\t _extends(attrs.btnUp, {\n\t onTouchStart: this.onTouchStart.bind(this, 'up'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnUpHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnUpHover: false,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n\t args[_key5] = arguments[_key5];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6.setState({\n\t btnUpHover: true,\n\t btnUpActive: true,\n\t inputFocus: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('up');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.btnDown, {\n\t onTouchStart: this.onTouchStart.bind(this, 'down'),\n\t onTouchEnd: this.onTouchEnd,\n\t onMouseEnter: function onMouseEnter() {\n\t _this6.setState({\n\t btnDownHover: true\n\t });\n\t },\n\t onMouseLeave: function onMouseLeave() {\n\t _this6.stop();\n\t _this6.setState({\n\t btnDownHover: false,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseUp: function onMouseUp() {\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: false\n\t });\n\t },\n\t onMouseDown: function onMouseDown() {\n\t for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n\t args[_key6] = arguments[_key6];\n\t }\n\n\t args[0].preventDefault();\n\t args[0].persist();\n\t _this6.setState({\n\t btnDownHover: true,\n\t btnDownActive: true,\n\t inputFocus: true\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t _this6.onMouseDown('down');\n\t });\n\t }\n\t });\n\n\t _extends(attrs.input, {\n\t onChange: function onChange(e) {\n\t var original = e.target.value;\n\t var val = _this6._parse(original);\n\t if (isNaN(val)) {\n\t val = null;\n\t }\n\t _this6.setState({\n\t value: _this6._isStrict ? _this6._toNumber(val) : val,\n\t stringValue: original\n\t });\n\t },\n\t onKeyDown: this._onKeyDown.bind(this),\n\t onInput: function onInput() {\n\t for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n\t args[_key7] = arguments[_key7];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onInput\"].concat(args));\n\t },\n\t onSelect: function onSelect() {\n\t for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n\t args[_key8] = arguments[_key8];\n\t }\n\n\t _this6.saveSelection();\n\t _this6._invokeEventCallback.apply(_this6, [\"onSelect\"].concat(args));\n\t },\n\t onFocus: function onFocus() {\n\t for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n\t args[_key9] = arguments[_key9];\n\t }\n\n\t args[0].persist();\n\t _this6.setState({ inputFocus: true }, function () {\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val,\n\t stringValue: val || val === 0 ? val + \"\" : \"\"\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onFocus\"].concat(args));\n\t });\n\t });\n\t },\n\t onBlur: function onBlur() {\n\t for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n\t args[_key10] = arguments[_key10];\n\t }\n\n\t var _isStrict = _this6._isStrict;\n\t _this6._isStrict = true;\n\t args[0].persist();\n\t _this6.setState({ inputFocus: false }, function () {\n\t var val = _this6._parse(args[0].target.value);\n\t _this6.setState({\n\t value: val\n\t }, function () {\n\t _this6._invokeEventCallback.apply(_this6, [\"onBlur\"].concat(args));\n\t _this6._isStrict = _isStrict;\n\t });\n\t });\n\t }\n\t });\n\t } else {\n\t if (style !== false) {\n\t _extends(attrs.input.style, css['input:disabled']);\n\t }\n\t }\n\n\t if (mobile) {\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement('input', attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: style === false ? null : css.minus }),\n\t _react2.default.createElement('i', { style: style === false ? null : css.plus })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: style === false ? null : css.minus })\n\t )\n\t );\n\t }\n\n\t return _react2.default.createElement(\n\t 'span',\n\t attrs.wrap,\n\t _react2.default.createElement('input', attrs.input),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnUp,\n\t _react2.default.createElement('i', { style: style === false ? null : css.arrowUp })\n\t ),\n\t _react2.default.createElement(\n\t 'b',\n\t attrs.btnDown,\n\t _react2.default.createElement('i', { style: style === false ? null : css.arrowDown })\n\t )\n\t );\n\t }\n\t }]);\n\n\t return NumericInput;\n\t}(_react.Component);\n\n\tNumericInput.propTypes = {\n\t step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t precision: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n\t maxLength: _propTypes2.default.number,\n\t parse: _propTypes2.default.func,\n\t format: _propTypes2.default.func,\n\t className: _propTypes2.default.string,\n\t disabled: _propTypes2.default.bool,\n\t readOnly: _propTypes2.default.bool,\n\t required: _propTypes2.default.bool,\n\t snap: _propTypes2.default.bool,\n\t noValidate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n\t style: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),\n\t type: _propTypes2.default.string,\n\t pattern: _propTypes2.default.string,\n\t onFocus: _propTypes2.default.func,\n\t onBlur: _propTypes2.default.func,\n\t onKeyDown: _propTypes2.default.func,\n\t onChange: _propTypes2.default.func,\n\t onInvalid: _propTypes2.default.func,\n\t onValid: _propTypes2.default.func,\n\t onInput: _propTypes2.default.func,\n\t onSelect: _propTypes2.default.func,\n\t size: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),\n\t strict: _propTypes2.default.bool,\n\t mobile: function mobile(props, propName) {\n\t var prop = props[propName];\n\t if (prop !== true && prop !== false && prop !== 'auto' && typeof prop != 'function') {\n\t return new Error('The \"mobile\" prop must be true, false, \"auto\" or a function');\n\t }\n\t }\n\t};\n\tNumericInput.defaultProps = {\n\t step: 1,\n\t min: Number.MIN_SAFE_INTEGER || -9007199254740991,\n\t max: Number.MAX_SAFE_INTEGER || 9007199254740991,\n\t precision: null,\n\t parse: null,\n\t format: null,\n\t mobile: 'auto',\n\t strict: false,\n\t style: {}\n\t};\n\tNumericInput.style = {\n\t wrap: {\n\t position: 'relative',\n\t display: 'inline-block'\n\t },\n\n\t 'wrap.hasFormControl': {\n\t display: 'block'\n\t },\n\n\t arrowUp: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0 0.6ex 0.6ex 0.6ex',\n\t borderColor: 'transparent transparent rgba(0, 0, 0, 0.7)',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t arrowDown: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 0,\n\t height: 0,\n\t borderWidth: '0.6ex 0.6ex 0 0.6ex',\n\t borderColor: 'rgba(0, 0, 0, 0.7) transparent transparent',\n\t borderStyle: 'solid',\n\t margin: '-0.3ex 0 0 -0.56ex'\n\t },\n\n\t plus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 2,\n\t height: 10,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-5px 0 0 -1px'\n\t },\n\n\t minus: {\n\t position: 'absolute',\n\t top: '50%',\n\t left: '50%',\n\t width: 10,\n\t height: 2,\n\t background: 'rgba(0,0,0,.7)',\n\t margin: '-1px 0 0 -5px'\n\t },\n\n\t btn: {\n\t position: 'absolute',\n\t right: 2,\n\t width: '2.26ex',\n\t borderColor: 'rgba(0,0,0,.1)',\n\t borderStyle: 'solid',\n\t textAlign: 'center',\n\t cursor: 'default',\n\t transition: 'all 0.1s',\n\t background: 'rgba(0,0,0,.1)',\n\t boxShadow: '-1px -1px 3px rgba(0,0,0,.1) inset,' + '1px 1px 3px rgba(255,255,255,.7) inset'\n\t },\n\n\t btnUp: {\n\t top: 2,\n\t bottom: '50%',\n\t borderRadius: '2px 2px 0 0',\n\t borderWidth: '1px 1px 0 1px'\n\t },\n\n\t 'btnUp.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t btnDown: {\n\t top: '50%',\n\t bottom: 2,\n\t borderRadius: '0 0 2px 2px',\n\t borderWidth: '0 1px 1px 1px'\n\t },\n\n\t 'btnDown.mobile': {\n\t width: '3.3ex',\n\t bottom: 2,\n\t left: 2,\n\t top: 2,\n\t right: 'auto',\n\t boxShadow: 'none',\n\t borderRadius: 2,\n\t borderWidth: 1\n\t },\n\n\t 'btn:hover': {\n\t background: 'rgba(0,0,0,.2)'\n\t },\n\n\t 'btn:active': {\n\t background: 'rgba(0,0,0,.3)',\n\t boxShadow: '0 1px 3px rgba(0,0,0,.2) inset,' + '-1px -1px 4px rgba(255,255,255,.5) inset'\n\t },\n\n\t 'btn:disabled': {\n\t opacity: 0.5,\n\t boxShadow: 'none',\n\t cursor: 'not-allowed'\n\t },\n\n\t input: {\n\t paddingRight: '3ex',\n\t boxSizing: 'border-box'\n\t },\n\n\t 'input:not(.form-control)': {\n\t border: '1px solid #ccc',\n\t borderRadius: 2,\n\t paddingLeft: 4,\n\t display: 'block',\n\t WebkitAppearance: 'none',\n\t lineHeight: 'normal'\n\t },\n\n\t 'input.mobile': {\n\t paddingLeft: ' 3.4ex',\n\t paddingRight: '3.4ex',\n\t textAlign: 'center'\n\t },\n\n\t 'input:focus': {},\n\n\t 'input:disabled': {\n\t color: 'rgba(0, 0, 0, 0.3)',\n\t textShadow: '0 1px 0 rgba(255, 255, 255, 0.8)'\n\t }\n\t};\n\tNumericInput.SPEED = 50;\n\tNumericInput.DELAY = 500;\n\tNumericInput.DIRECTION_UP = \"up\";\n\tNumericInput.DIRECTION_DOWN = \"down\";\n\n\n\tmodule.exports = NumericInput;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"prop-types\");\n\n/***/ })\n/******/ ]);","import React from 'react';\nexport var ReactReduxContext = React.createContext(null);\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch(); // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n batch(function () {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n });\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nProvider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n};\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport React, { useContext, useMemo, useEffect, useLayoutEffect, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n}; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect because we want\n// `connect` to perform sync updates to a ref to save the latest props after\n// a render is actually committed to the DOM.\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n invariant(renderCountProp === undefined, \"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n invariant(!withRef, 'withRef is removed. To access the wrapped instance, use a ref on the connected component');\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n invariant(storeKey === 'store', 'storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production') {\n invariant(isValidElementType(WrappedComponent), \"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context\n\n var didStoreComeFromProps = Boolean(props.store);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n invariant(didStoreComeFromProps || didStoreComeFromContext, \"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n var store = props.store || contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffect(function () {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n }); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffect(function () {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n latestStoreState: latestStoreState,\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n }, [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","var hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default createConnect();","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { useContext } from 'react';\nimport invariant from 'invariant';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n invariant(contextValue, 'could not find react-redux context value; please ensure the component is wrapped in a ');\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = createDispatchHook();","import { useReducer, useRef, useEffect, useMemo, useLayoutEffect, useContext } from 'react';\nimport invariant from 'invariant';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { ReactReduxContext } from '../components/Context'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n var errorMessage = \"An error occured while selecting the store state: \" + err.message + \".\";\n\n if (latestSubscriptionCallbackError.current) {\n errorMessage += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\nOriginal stack trace:\";\n }\n\n throw new Error(errorMessage);\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n invariant(selector, \"You must pass a selector to useSelectors\");\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = createSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MediaQuery\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"MediaQuery\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_15__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(15);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(7);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _matchmedia = __webpack_require__(11);\n\t\n\tvar _matchmedia2 = _interopRequireDefault(_matchmedia);\n\t\n\tvar _hyphenateStyleName = __webpack_require__(6);\n\t\n\tvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\t\n\tvar _mediaQuery = __webpack_require__(4);\n\t\n\tvar _mediaQuery2 = _interopRequireDefault(_mediaQuery);\n\t\n\tvar _toQuery = __webpack_require__(9);\n\t\n\tvar _toQuery2 = _interopRequireDefault(_toQuery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar defaultTypes = {\n\t component: _propTypes2.default.node,\n\t query: _propTypes2.default.string,\n\t values: _propTypes2.default.shape(_mediaQuery2.default.matchers),\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.function]),\n\t onChange: _propTypes2.default.function,\n\t onBeforeChange: _propTypes2.default.function\n\t};\n\tvar mediaKeys = Object.keys(_mediaQuery2.default.all);\n\tvar excludedQueryKeys = Object.keys(defaultTypes);\n\tvar excludedPropKeys = excludedQueryKeys.concat(mediaKeys);\n\t\n\tfunction omit(object, keys) {\n\t var newObject = _extends({}, object);\n\t keys.forEach(function (key) {\n\t return delete newObject[key];\n\t });\n\t return newObject;\n\t}\n\t\n\tvar MediaQuery = function (_React$Component) {\n\t _inherits(MediaQuery, _React$Component);\n\t\n\t function MediaQuery() {\n\t var _ref;\n\t\n\t var _temp, _this, _ret;\n\t\n\t _classCallCheck(this, MediaQuery);\n\t\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MediaQuery.__proto__ || Object.getPrototypeOf(MediaQuery)).call.apply(_ref, [this].concat(args))), _this), _this.state = { matches: false }, _this.updateMatches = function () {\n\t if (_this._mql.matches === _this.state.matches) {\n\t return;\n\t }\n\t _this.setState({\n\t matches: _this._mql.matches\n\t });\n\t }, _temp), _possibleConstructorReturn(_this, _ret);\n\t }\n\t\n\t _createClass(MediaQuery, [{\n\t key: 'componentWillMount',\n\t value: function componentWillMount() {\n\t this.updateQuery(this.props);\n\t }\n\t }, {\n\t key: 'componentWillReceiveProps',\n\t value: function componentWillReceiveProps(nextProps) {\n\t this.updateQuery(nextProps);\n\t }\n\t }, {\n\t key: 'updateQuery',\n\t value: function updateQuery(props) {\n\t var values = void 0;\n\t if (props.query) {\n\t this.query = props.query;\n\t } else {\n\t this.query = (0, _toQuery2.default)(omit(props, excludedQueryKeys));\n\t }\n\t\n\t if (!this.query) {\n\t throw new Error('Invalid or missing MediaQuery!');\n\t }\n\t\n\t if (props.values) {\n\t values = Object.keys(props.values).reduce(function (result, key) {\n\t result[(0, _hyphenateStyleName2.default)(key)] = props.values[key];\n\t return result;\n\t }, {});\n\t }\n\t\n\t if (this._mql) {\n\t this._mql.removeListener(this.updateMatches);\n\t }\n\t\n\t this._mql = (0, _matchmedia2.default)(this.query, values);\n\t this._mql.addListener(this.updateMatches);\n\t this.updateMatches();\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(_, nextState) {\n\t if (this.props.onBeforeChange && this.state.matches !== nextState.matches) {\n\t this.props.onBeforeChange(this.state.matches);\n\t }\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(_, prevState) {\n\t if (this.props.onChange && prevState.matches !== this.state.matches) {\n\t this.props.onChange(this.state.matches);\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._mql.removeListener(this.updateMatches);\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t if (typeof this.props.children === 'function') {\n\t return this.props.children(this.state.matches);\n\t }\n\t\n\t if (this.state.matches === false) {\n\t return null;\n\t }\n\t var props = omit(this.props, excludedPropKeys);\n\t var hasMergeProps = Object.keys(props).length > 0;\n\t var childrenCount = _react2.default.Children.count(this.props.children);\n\t var wrapChildren = this.props.component || childrenCount > 1 || typeof this.props.children === 'string' || Array.isArray(this.props.children) && childrenCount == 1 || this.props.children === undefined;\n\t if (wrapChildren) {\n\t return _react2.default.createElement(this.props.component || 'div', props, this.props.children);\n\t } else if (hasMergeProps) {\n\t return _react2.default.cloneElement(this.props.children, props);\n\t } else if (childrenCount) {\n\t return this.props.children;\n\t } else {\n\t return null;\n\t }\n\t }\n\t }]);\n\t\n\t return MediaQuery;\n\t}(_react2.default.Component);\n\t\n\tMediaQuery.displayName = 'MediaQuery';\n\tMediaQuery.defaultProps = {\n\t values: {}\n\t};\n\texports.default = MediaQuery;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // 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\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // 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\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // 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\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // 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\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * \n\t */\n\t\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\t\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\t\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\t\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar validateFormat = function validateFormat(format) {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _propTypes = __webpack_require__(7);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar stringOrNumber = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);\n\t\n\t// properties that match media queries\n\tvar matchers = {\n\t orientation: _propTypes2.default.oneOf(['portrait', 'landscape']),\n\t\n\t scan: _propTypes2.default.oneOf(['progressive', 'interlace']),\n\t\n\t aspectRatio: _propTypes2.default.string,\n\t deviceAspectRatio: _propTypes2.default.string,\n\t\n\t height: stringOrNumber,\n\t deviceHeight: stringOrNumber,\n\t\n\t width: stringOrNumber,\n\t deviceWidth: stringOrNumber,\n\t\n\t color: _propTypes2.default.bool,\n\t\n\t colorIndex: _propTypes2.default.bool,\n\t\n\t monochrome: _propTypes2.default.bool,\n\t resolution: stringOrNumber\n\t};\n\t\n\t// media features\n\tvar features = _extends({\n\t minAspectRatio: _propTypes2.default.string,\n\t maxAspectRatio: _propTypes2.default.string,\n\t minDeviceAspectRatio: _propTypes2.default.string,\n\t maxDeviceAspectRatio: _propTypes2.default.string,\n\t\n\t minHeight: stringOrNumber,\n\t maxHeight: stringOrNumber,\n\t minDeviceHeight: stringOrNumber,\n\t maxDeviceHeight: stringOrNumber,\n\t\n\t minWidth: stringOrNumber,\n\t maxWidth: stringOrNumber,\n\t minDeviceWidth: stringOrNumber,\n\t maxDeviceWidth: stringOrNumber,\n\t\n\t minColor: _propTypes2.default.number,\n\t maxColor: _propTypes2.default.number,\n\t\n\t minColorIndex: _propTypes2.default.number,\n\t maxColorIndex: _propTypes2.default.number,\n\t\n\t minMonochrome: _propTypes2.default.number,\n\t maxMonochrome: _propTypes2.default.number,\n\t\n\t minResolution: stringOrNumber,\n\t maxResolution: stringOrNumber\n\t\n\t}, matchers);\n\t\n\t// media types\n\tvar types = {\n\t all: _propTypes2.default.bool,\n\t grid: _propTypes2.default.bool,\n\t aural: _propTypes2.default.bool,\n\t braille: _propTypes2.default.bool,\n\t handheld: _propTypes2.default.bool,\n\t print: _propTypes2.default.bool,\n\t projection: _propTypes2.default.bool,\n\t screen: _propTypes2.default.bool,\n\t tty: _propTypes2.default.bool,\n\t tv: _propTypes2.default.bool,\n\t embossed: _propTypes2.default.bool\n\t};\n\t\n\tvar all = _extends({}, types, features);\n\t\n\t// add the type property\n\tmatchers.type = Object.keys(types);\n\t\n\texports.default = {\n\t all: all,\n\t types: types,\n\t matchers: matchers,\n\t features: features\n\t};\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(2);\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = emptyFunction;\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t (function () {\n\t var printWarning = function printWarning(format) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var argIndex = 0;\n\t var message = 'Warning: ' + format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // --- Welcome to debugging React ---\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch (x) {}\n\t };\n\t\n\t warning = function warning(condition, format) {\n\t if (format === undefined) {\n\t throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n\t }\n\t\n\t if (format.indexOf('Failed Composite propType: ') === 0) {\n\t return; // Ignore CompositeComponent proptype check.\n\t }\n\t\n\t if (!condition) {\n\t for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t args[_key2 - 2] = arguments[_key2];\n\t }\n\t\n\t printWarning.apply(undefined, [format].concat(args));\n\t }\n\t };\n\t })();\n\t}\n\t\n\tmodule.exports = warning;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar uppercasePattern = /[A-Z]/g;\n\tvar msPattern = /^ms-/;\n\tvar cache = {};\n\t\n\tfunction hyphenateStyleName(string) {\n\t return string in cache\n\t ? cache[string]\n\t : cache[string] = string\n\t .replace(uppercasePattern, '-$&')\n\t .toLowerCase()\n\t .replace(msPattern, '-ms-');\n\t}\n\t\n\tmodule.exports = hyphenateStyleName;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\t\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\t\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(13)();\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\t\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\texports.default = function (obj) {\n\t var rules = [];\n\t Object.keys(_mediaQuery2.default.all).forEach(function (k) {\n\t var v = obj[k];\n\t if (v != null) {\n\t rules.push(keyVal(k, v));\n\t }\n\t });\n\t return join(rules);\n\t};\n\t\n\tvar _hyphenateStyleName = __webpack_require__(6);\n\t\n\tvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\t\n\tvar _mediaQuery = __webpack_require__(4);\n\t\n\tvar _mediaQuery2 = _interopRequireDefault(_mediaQuery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar negate = function negate(cond) {\n\t return 'not ' + cond;\n\t};\n\t\n\tfunction keyVal(k, v) {\n\t var realKey = (0, _hyphenateStyleName2.default)(k);\n\t\n\t // px shorthand\n\t if (typeof v === 'number') {\n\t v = v + 'px';\n\t }\n\t if (v === true) {\n\t return k;\n\t }\n\t if (v === false) {\n\t return negate(k);\n\t }\n\t return '(' + realKey + ': ' + v + ')';\n\t}\n\t\n\tfunction join(conds) {\n\t return conds.join(' and ');\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\t/*\n\tCopyright (c) 2014, Yahoo! Inc. All rights reserved.\n\tCopyrights licensed under the New BSD License.\n\tSee the accompanying LICENSE file for terms.\n\t*/\n\t\n\t'use strict';\n\t\n\texports.match = matchQuery;\n\texports.parse = parseQuery;\n\t\n\t// -----------------------------------------------------------------------------\n\t\n\tvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n\t RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n\t RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n\t RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n\t RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\t\n\tfunction matchQuery(mediaQuery, values) {\n\t return parseQuery(mediaQuery).some(function (query) {\n\t var inverse = query.inverse;\n\t\n\t // Either the parsed or specified `type` is \"all\", or the types must be\n\t // equal for a match.\n\t var typeMatch = query.type === 'all' || values.type === query.type;\n\t\n\t // Quit early when `type` doesn't match, but take \"not\" into account.\n\t if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n\t return false;\n\t }\n\t\n\t var expressionsMatch = query.expressions.every(function (expression) {\n\t var feature = expression.feature,\n\t modifier = expression.modifier,\n\t expValue = expression.value,\n\t value = values[feature];\n\t\n\t // Missing or falsy values don't match.\n\t if (!value) { return false; }\n\t\n\t switch (feature) {\n\t case 'orientation':\n\t case 'scan':\n\t return value.toLowerCase() === expValue.toLowerCase();\n\t\n\t case 'width':\n\t case 'height':\n\t case 'device-width':\n\t case 'device-height':\n\t expValue = toPx(expValue);\n\t value = toPx(value);\n\t break;\n\t\n\t case 'resolution':\n\t expValue = toDpi(expValue);\n\t value = toDpi(value);\n\t break;\n\t\n\t case 'aspect-ratio':\n\t case 'device-aspect-ratio':\n\t case /* Deprecated */ 'device-pixel-ratio':\n\t expValue = toDecimal(expValue);\n\t value = toDecimal(value);\n\t break;\n\t\n\t case 'grid':\n\t case 'color':\n\t case 'color-index':\n\t case 'monochrome':\n\t expValue = parseInt(expValue, 10) || 1;\n\t value = parseInt(value, 10) || 0;\n\t break;\n\t }\n\t\n\t switch (modifier) {\n\t case 'min': return value >= expValue;\n\t case 'max': return value <= expValue;\n\t default : return value === expValue;\n\t }\n\t });\n\t\n\t return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n\t });\n\t}\n\t\n\tfunction parseQuery(mediaQuery) {\n\t return mediaQuery.split(',').map(function (query) {\n\t query = query.trim();\n\t\n\t var captures = query.match(RE_MEDIA_QUERY),\n\t modifier = captures[1],\n\t type = captures[2],\n\t expressions = captures[3] || '',\n\t parsed = {};\n\t\n\t parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n\t parsed.type = type ? type.toLowerCase() : 'all';\n\t\n\t // Split expressions into a list.\n\t expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\t\n\t parsed.expressions = expressions.map(function (expression) {\n\t var captures = expression.match(RE_MQ_EXPRESSION),\n\t feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\t\n\t return {\n\t modifier: feature[1],\n\t feature : feature[2],\n\t value : captures[2]\n\t };\n\t });\n\t\n\t return parsed;\n\t });\n\t}\n\t\n\t// -- Utilities ----------------------------------------------------------------\n\t\n\tfunction toDecimal(ratio) {\n\t var decimal = Number(ratio),\n\t numbers;\n\t\n\t if (!decimal) {\n\t numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n\t decimal = numbers[1] / numbers[2];\n\t }\n\t\n\t return decimal;\n\t}\n\t\n\tfunction toDpi(resolution) {\n\t var value = parseFloat(resolution),\n\t units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\t\n\t switch (units) {\n\t case 'dpcm': return value / 2.54;\n\t case 'dppx': return value * 96;\n\t default : return value;\n\t }\n\t}\n\t\n\tfunction toPx(length) {\n\t var value = parseFloat(length),\n\t units = String(length).match(RE_LENGTH_UNIT)[1];\n\t\n\t switch (units) {\n\t case 'em' : return value * 16;\n\t case 'rem': return value * 16;\n\t case 'cm' : return value * 96 / 2.54;\n\t case 'mm' : return value * 96 / 2.54 / 10;\n\t case 'in' : return value * 96;\n\t case 'pt' : return value * 72;\n\t case 'pc' : return value * 72 / 12;\n\t default : return value;\n\t }\n\t}\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar staticMatch = __webpack_require__(10).match;\n\tvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\t\n\t// our fake MediaQueryList\n\tfunction Mql(query, values){\n\t var self = this;\n\t if(dynamicMatch){\n\t var mql = dynamicMatch.call(window, query);\n\t this.matches = mql.matches;\n\t this.media = mql.media;\n\t // TODO: is there a time it makes sense to remove this listener?\n\t mql.addListener(update);\n\t } else {\n\t this.matches = staticMatch(query, values);\n\t this.media = query;\n\t }\n\t\n\t this.addListener = addListener;\n\t this.removeListener = removeListener;\n\t\n\t function addListener(listener){\n\t if(mql){\n\t mql.addListener(listener);\n\t }\n\t }\n\t\n\t function removeListener(listener){\n\t if(mql){\n\t mql.removeListener(listener);\n\t }\n\t }\n\t\n\t // update ourselves!\n\t function update(evt){\n\t self.matches = evt.matches;\n\t self.media = evt.media;\n\t }\n\t}\n\t\n\tfunction matchMedia(query, values){\n\t return new Mql(query, values);\n\t}\n\t\n\tmodule.exports = matchMedia;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var invariant = __webpack_require__(3);\n\t var warning = __webpack_require__(5);\n\t var ReactPropTypesSecret = __webpack_require__(8);\n\t var loggedTypeFailures = {};\n\t}\n\t\n\t/**\n\t * Assert that the values match with the type specs.\n\t * Error messages are memorized and will only be shown once.\n\t *\n\t * @param {object} typeSpecs Map of name to a ReactPropType\n\t * @param {object} values Runtime values that need to be type-checked\n\t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n\t * @param {string} componentName Name of the component for error messages.\n\t * @param {?Function} getStack Returns the component stack.\n\t * @private\n\t */\n\tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t for (var typeSpecName in typeSpecs) {\n\t if (typeSpecs.hasOwnProperty(typeSpecName)) {\n\t var error;\n\t // Prop type validation may throw. In case they do, we don't want to\n\t // fail the render phase where it didn't fail before. So we log it.\n\t // After these have been cleaned up, we'll let them throw.\n\t try {\n\t // This is intentionally an invariant that gets caught. It's the same\n\t // behavior as without this statement except with a better message.\n\t invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n\t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t } catch (ex) {\n\t error = ex;\n\t }\n\t warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n\t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n\t // Only monitor this failure once because there tends to be a lot of the\n\t // same error.\n\t loggedTypeFailures[error.message] = true;\n\t\n\t var stack = getStack ? getStack() : '';\n\t\n\t warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n\t }\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = checkPropTypes;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(2);\n\tvar invariant = __webpack_require__(3);\n\t\n\tmodule.exports = function() {\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t function shim() {\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\t\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(2);\n\tvar invariant = __webpack_require__(3);\n\tvar warning = __webpack_require__(5);\n\t\n\tvar ReactPropTypesSecret = __webpack_require__(8);\n\tvar checkPropTypes = __webpack_require__(12);\n\t\n\tmodule.exports = function(isValidElement, throwOnDirectAccess) {\n\t /* global Symbol */\n\t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\t\n\t /**\n\t * Returns the iterator method function contained on the iterable object.\n\t *\n\t * Be sure to invoke the function with the iterable as context:\n\t *\n\t * var iteratorFn = getIteratorFn(myIterable);\n\t * if (iteratorFn) {\n\t * var iterator = iteratorFn.call(myIterable);\n\t * ...\n\t * }\n\t *\n\t * @param {?object} maybeIterable\n\t * @return {?function}\n\t */\n\t function getIteratorFn(maybeIterable) {\n\t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\t if (typeof iteratorFn === 'function') {\n\t return iteratorFn;\n\t }\n\t }\n\t\n\t /**\n\t * Collection of methods that allow declaration and validation of props that are\n\t * supplied to React components. Example usage:\n\t *\n\t * var Props = require('ReactPropTypes');\n\t * var MyArticle = React.createClass({\n\t * propTypes: {\n\t * // An optional string prop named \"description\".\n\t * description: Props.string,\n\t *\n\t * // A required enum prop named \"category\".\n\t * category: Props.oneOf(['News','Photos']).isRequired,\n\t *\n\t * // A prop named \"dialog\" that requires an instance of Dialog.\n\t * dialog: Props.instanceOf(Dialog).isRequired\n\t * },\n\t * render: function() { ... }\n\t * });\n\t *\n\t * A more formal specification of how these methods are used:\n\t *\n\t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n\t * decl := ReactPropTypes.{type}(.isRequired)?\n\t *\n\t * Each and every declaration produces a function with the same signature. This\n\t * allows the creation of custom validation functions. For example:\n\t *\n\t * var MyLink = React.createClass({\n\t * propTypes: {\n\t * // An optional string or URI prop named \"href\".\n\t * href: function(props, propName, componentName) {\n\t * var propValue = props[propName];\n\t * if (propValue != null && typeof propValue !== 'string' &&\n\t * !(propValue instanceof URI)) {\n\t * return new Error(\n\t * 'Expected a string or an URI for ' + propName + ' in ' +\n\t * componentName\n\t * );\n\t * }\n\t * }\n\t * },\n\t * render: function() {...}\n\t * });\n\t *\n\t * @internal\n\t */\n\t\n\t var ANONYMOUS = '<>';\n\t\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\t var ReactPropTypes = {\n\t array: createPrimitiveTypeChecker('array'),\n\t bool: createPrimitiveTypeChecker('boolean'),\n\t func: createPrimitiveTypeChecker('function'),\n\t number: createPrimitiveTypeChecker('number'),\n\t object: createPrimitiveTypeChecker('object'),\n\t string: createPrimitiveTypeChecker('string'),\n\t symbol: createPrimitiveTypeChecker('symbol'),\n\t\n\t any: createAnyTypeChecker(),\n\t arrayOf: createArrayOfTypeChecker,\n\t element: createElementTypeChecker(),\n\t instanceOf: createInstanceTypeChecker,\n\t node: createNodeChecker(),\n\t objectOf: createObjectOfTypeChecker,\n\t oneOf: createEnumTypeChecker,\n\t oneOfType: createUnionTypeChecker,\n\t shape: createShapeTypeChecker\n\t };\n\t\n\t /**\n\t * inlined Object.is polyfill to avoid requiring consumers ship their own\n\t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\t */\n\t /*eslint-disable no-self-compare*/\n\t function is(x, y) {\n\t // SameValue algorithm\n\t if (x === y) {\n\t // Steps 1-5, 7-10\n\t // Steps 6.b-6.e: +0 != -0\n\t return x !== 0 || 1 / x === 1 / y;\n\t } else {\n\t // Step 6.a: NaN == NaN\n\t return x !== x && y !== y;\n\t }\n\t }\n\t /*eslint-enable no-self-compare*/\n\t\n\t /**\n\t * We use an Error-like object for backward compatibility as people may call\n\t * PropTypes directly and inspect their output. However, we don't use real\n\t * Errors anymore. We don't inspect their stack anyway, and creating them\n\t * is prohibitively expensive if they are created too often, such as what\n\t * happens in oneOfType() for any type before the one that matched.\n\t */\n\t function PropTypeError(message) {\n\t this.message = message;\n\t this.stack = '';\n\t }\n\t // Make `instanceof Error` still work for returned errors.\n\t PropTypeError.prototype = Error.prototype;\n\t\n\t function createChainableTypeChecker(validate) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var manualPropTypeCallCache = {};\n\t var manualPropTypeWarningCount = 0;\n\t }\n\t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n\t componentName = componentName || ANONYMOUS;\n\t propFullName = propFullName || propName;\n\t\n\t if (secret !== ReactPropTypesSecret) {\n\t if (throwOnDirectAccess) {\n\t // New behavior only for users of `prop-types` package\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n\t // Old behavior for people using React.PropTypes\n\t var cacheKey = componentName + ':' + propName;\n\t if (\n\t !manualPropTypeCallCache[cacheKey] &&\n\t // Avoid spamming the console because they are often not actionable except for lib authors\n\t manualPropTypeWarningCount < 3\n\t ) {\n\t warning(\n\t false,\n\t 'You are manually calling a React.PropTypes validation ' +\n\t 'function for the `%s` prop on `%s`. This is deprecated ' +\n\t 'and will throw in the standalone `prop-types` package. ' +\n\t 'You may be seeing this warning due to a third-party PropTypes ' +\n\t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n\t propFullName,\n\t componentName\n\t );\n\t manualPropTypeCallCache[cacheKey] = true;\n\t manualPropTypeWarningCount++;\n\t }\n\t }\n\t }\n\t if (props[propName] == null) {\n\t if (isRequired) {\n\t if (props[propName] === null) {\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n\t }\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n\t }\n\t return null;\n\t } else {\n\t return validate(props, propName, componentName, location, propFullName);\n\t }\n\t }\n\t\n\t var chainedCheckType = checkType.bind(null, false);\n\t chainedCheckType.isRequired = checkType.bind(null, true);\n\t\n\t return chainedCheckType;\n\t }\n\t\n\t function createPrimitiveTypeChecker(expectedType) {\n\t function validate(props, propName, componentName, location, propFullName, secret) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== expectedType) {\n\t // `propValue` being instance of, say, date/regexp, pass the 'object'\n\t // check, but we can offer a more precise error message here rather than\n\t // 'of type `object`'.\n\t var preciseType = getPreciseType(propValue);\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createAnyTypeChecker() {\n\t return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n\t }\n\t\n\t function createArrayOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n\t }\n\t var propValue = props[propName];\n\t if (!Array.isArray(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n\t }\n\t for (var i = 0; i < propValue.length; i++) {\n\t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createElementTypeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t if (!isValidElement(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createInstanceTypeChecker(expectedClass) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!(props[propName] instanceof expectedClass)) {\n\t var expectedClassName = expectedClass.name || ANONYMOUS;\n\t var actualClassName = getClassName(props[propName]);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createEnumTypeChecker(expectedValues) {\n\t if (!Array.isArray(expectedValues)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t for (var i = 0; i < expectedValues.length; i++) {\n\t if (is(propValue, expectedValues[i])) {\n\t return null;\n\t }\n\t }\n\t\n\t var valuesString = JSON.stringify(expectedValues);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createObjectOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n\t }\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n\t }\n\t for (var key in propValue) {\n\t if (propValue.hasOwnProperty(key)) {\n\t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createUnionTypeChecker(arrayOfTypeCheckers) {\n\t if (!Array.isArray(arrayOfTypeCheckers)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n\t return null;\n\t }\n\t }\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createNodeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!isNode(props[propName])) {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t for (var key in shapeTypes) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t continue;\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function isNode(propValue) {\n\t switch (typeof propValue) {\n\t case 'number':\n\t case 'string':\n\t case 'undefined':\n\t return true;\n\t case 'boolean':\n\t return !propValue;\n\t case 'object':\n\t if (Array.isArray(propValue)) {\n\t return propValue.every(isNode);\n\t }\n\t if (propValue === null || isValidElement(propValue)) {\n\t return true;\n\t }\n\t\n\t var iteratorFn = getIteratorFn(propValue);\n\t if (iteratorFn) {\n\t var iterator = iteratorFn.call(propValue);\n\t var step;\n\t if (iteratorFn !== propValue.entries) {\n\t while (!(step = iterator.next()).done) {\n\t if (!isNode(step.value)) {\n\t return false;\n\t }\n\t }\n\t } else {\n\t // Iterator will provide entry [k,v] tuples rather than values.\n\t while (!(step = iterator.next()).done) {\n\t var entry = step.value;\n\t if (entry) {\n\t if (!isNode(entry[1])) {\n\t return false;\n\t }\n\t }\n\t }\n\t }\n\t } else {\n\t return false;\n\t }\n\t\n\t return true;\n\t default:\n\t return false;\n\t }\n\t }\n\t\n\t function isSymbol(propType, propValue) {\n\t // Native Symbol.\n\t if (propType === 'symbol') {\n\t return true;\n\t }\n\t\n\t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\t if (propValue['@@toStringTag'] === 'Symbol') {\n\t return true;\n\t }\n\t\n\t // Fallback for non-spec compliant Symbols which are polyfilled.\n\t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n\t return true;\n\t }\n\t\n\t return false;\n\t }\n\t\n\t // Equivalent of `typeof` but with special handling for array and regexp.\n\t function getPropType(propValue) {\n\t var propType = typeof propValue;\n\t if (Array.isArray(propValue)) {\n\t return 'array';\n\t }\n\t if (propValue instanceof RegExp) {\n\t // Old webkits (at least until Android 4.0) return 'function' rather than\n\t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n\t // passes PropTypes.object.\n\t return 'object';\n\t }\n\t if (isSymbol(propType, propValue)) {\n\t return 'symbol';\n\t }\n\t return propType;\n\t }\n\t\n\t // This handles more types than `getPropType`. Only used for error messages.\n\t // See `createPrimitiveTypeChecker`.\n\t function getPreciseType(propValue) {\n\t var propType = getPropType(propValue);\n\t if (propType === 'object') {\n\t if (propValue instanceof Date) {\n\t return 'date';\n\t } else if (propValue instanceof RegExp) {\n\t return 'regexp';\n\t }\n\t }\n\t return propType;\n\t }\n\t\n\t // Returns class name of the object, if any.\n\t function getClassName(propValue) {\n\t if (!propValue.constructor || !propValue.constructor.name) {\n\t return ANONYMOUS;\n\t }\n\t return propValue.constructor.name;\n\t }\n\t\n\t ReactPropTypes.checkPropTypes = checkPropTypes;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_15__;\n\n/***/ })\n/******/ ])\n});\n;\n//# sourceMappingURL=react-responsive.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n// Internally, the portalNode must be for either HTML or SVG elements\nvar ELEMENT_TYPE_HTML = 'html';\nvar ELEMENT_TYPE_SVG = 'svg';\n// ReactDOM can handle several different namespaces, but they're not exported publicly\n// https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/DOMNamespaces.js#L8-L10\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nvar validateElementType = function (domElement, elementType) {\n if (elementType === ELEMENT_TYPE_HTML) {\n return domElement instanceof HTMLElement;\n }\n if (elementType === ELEMENT_TYPE_SVG) {\n return domElement instanceof SVGElement;\n }\n throw new Error(\"Unrecognized element type \\\"\" + elementType + \"\\\" for validateElementType.\");\n};\n// This is the internal implementation: the public entry points set elementType to an appropriate value\nvar createPortalNode = function (elementType, options) {\n var initialProps = {};\n var parent;\n var lastPlaceholder;\n var element;\n if (elementType === ELEMENT_TYPE_HTML) {\n element = document.createElement('div');\n }\n else if (elementType === ELEMENT_TYPE_SVG) {\n element = document.createElementNS(SVG_NAMESPACE, 'g');\n }\n else {\n throw new Error(\"Invalid element type \\\"\" + elementType + \"\\\" for createPortalNode: must be \\\"html\\\" or \\\"svg\\\".\");\n }\n if (options && typeof options === \"object\") {\n for (var _i = 0, _a = Object.entries(options.attributes); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n element.setAttribute(key, value);\n }\n }\n var portalNode = {\n element: element,\n elementType: elementType,\n setPortalProps: function (props) {\n initialProps = props;\n },\n getInitialPortalProps: function () {\n return initialProps;\n },\n mount: function (newParent, newPlaceholder) {\n if (newPlaceholder === lastPlaceholder) {\n // Already mounted - noop.\n return;\n }\n portalNode.unmount();\n // To support SVG and other non-html elements, the portalNode's elementType needs to match\n // the elementType it's being rendered into\n if (newParent !== parent) {\n if (!validateElementType(newParent, elementType)) {\n throw new Error(\"Invalid element type for portal: \\\"\" + elementType + \"\\\" portalNodes must be used with \" + elementType + \" elements, but OutPortal is within <\" + newParent.tagName + \">.\");\n }\n }\n newParent.replaceChild(portalNode.element, newPlaceholder);\n parent = newParent;\n lastPlaceholder = newPlaceholder;\n },\n unmount: function (expectedPlaceholder) {\n if (expectedPlaceholder && expectedPlaceholder !== lastPlaceholder) {\n // Skip unmounts for placeholders that aren't currently mounted\n // They will have been automatically unmounted already by a subsequent mount()\n return;\n }\n if (parent && lastPlaceholder) {\n parent.replaceChild(lastPlaceholder, portalNode.element);\n parent = undefined;\n lastPlaceholder = undefined;\n }\n }\n };\n return portalNode;\n};\nvar InPortal = /** @class */ (function (_super) {\n __extends(InPortal, _super);\n function InPortal(props) {\n var _this = _super.call(this, props) || this;\n _this.addPropsChannel = function () {\n Object.assign(_this.props.node, {\n setPortalProps: function (props) {\n // Rerender the child node here if/when the out portal props change\n _this.setState({ nodeProps: props });\n }\n });\n };\n _this.state = {\n nodeProps: _this.props.node.getInitialPortalProps(),\n };\n return _this;\n }\n InPortal.prototype.componentDidMount = function () {\n this.addPropsChannel();\n };\n InPortal.prototype.componentDidUpdate = function () {\n this.addPropsChannel();\n };\n InPortal.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, node = _a.node;\n return ReactDOM.createPortal(React.Children.map(children, function (child) {\n if (!React.isValidElement(child))\n return child;\n return React.cloneElement(child, _this.state.nodeProps);\n }), node.element);\n };\n return InPortal;\n}(React.PureComponent));\nvar OutPortal = /** @class */ (function (_super) {\n __extends(OutPortal, _super);\n function OutPortal(props) {\n var _this = _super.call(this, props) || this;\n _this.placeholderNode = React.createRef();\n _this.passPropsThroughPortal();\n return _this;\n }\n OutPortal.prototype.passPropsThroughPortal = function () {\n var propsForTarget = Object.assign({}, this.props, { node: undefined });\n this.props.node.setPortalProps(propsForTarget);\n };\n OutPortal.prototype.componentDidMount = function () {\n var node = this.props.node;\n this.currentPortalNode = node;\n var placeholder = this.placeholderNode.current;\n var parent = placeholder.parentNode;\n node.mount(parent, placeholder);\n this.passPropsThroughPortal();\n };\n OutPortal.prototype.componentDidUpdate = function () {\n // We re-mount on update, just in case we were unmounted (e.g. by\n // a second OutPortal, which has now been removed)\n var node = this.props.node;\n // If we're switching portal nodes, we need to clean up the current one first.\n if (this.currentPortalNode && node !== this.currentPortalNode) {\n this.currentPortalNode.unmount(this.placeholderNode.current);\n this.currentPortalNode = node;\n }\n var placeholder = this.placeholderNode.current;\n var parent = placeholder.parentNode;\n node.mount(parent, placeholder);\n this.passPropsThroughPortal();\n };\n OutPortal.prototype.componentWillUnmount = function () {\n var node = this.props.node;\n node.unmount(this.placeholderNode.current);\n };\n OutPortal.prototype.render = function () {\n // Render a placeholder to the DOM, so we can get a reference into\n // our location in the DOM, and swap it out for the portaled node.\n // A
placeholder works fine even for SVG.\n return React.createElement(\"div\", { ref: this.placeholderNode });\n };\n return OutPortal;\n}(React.PureComponent));\nvar createHtmlPortalNode = createPortalNode.bind(null, ELEMENT_TYPE_HTML);\nvar createSvgPortalNode = createPortalNode.bind(null, ELEMENT_TYPE_SVG);\nexport { createHtmlPortalNode, createSvgPortalNode, InPortal, OutPortal, };\n//# sourceMappingURL=index.js.map","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\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.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\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.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var method = replace ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp;\n var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp;\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\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.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\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.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VerticleButton = exports.CircleArrow = exports.TinyButton = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _tweenFunctions = require('tween-functions');\n\nvar _tweenFunctions2 = _interopRequireDefault(_tweenFunctions);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _detectPassiveEvents = require('detect-passive-events');\n\nvar _detectPassiveEvents2 = _interopRequireDefault(_detectPassiveEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ScrollUpButton = function (_React$Component) {\n _inherits(ScrollUpButton, _React$Component);\n\n function ScrollUpButton(props) {\n _classCallCheck(this, ScrollUpButton);\n\n var _this = _possibleConstructorReturn(this, (ScrollUpButton.__proto__ || Object.getPrototypeOf(ScrollUpButton)).call(this, props));\n\n _this.state = { ToggleScrollUp: '' };\n _this.Animation = {\n StartPosition: 0,\n CurrentAnimationTime: 0,\n StartTime: null,\n AnimationFrame: null\n };\n _this.HandleScroll = _this.HandleScroll.bind(_this);\n _this.StopScrollingFrame = _this.StopScrollingFrame.bind(_this);\n _this.ScrollingFrame = _this.ScrollingFrame.bind(_this);\n _this.HandleClick = _this.HandleClick.bind(_this);\n return _this;\n }\n\n _createClass(ScrollUpButton, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.HandleScroll(); // run HandleScroll() at mount incase we are already scrolled down\n window.addEventListener('scroll', this.HandleScroll);\n window.addEventListener('wheel', this.StopScrollingFrame, _detectPassiveEvents2.default.hasSupport ? { passive: true } : false); // Stop animation if user mouse wheels during animation.\n window.addEventListener('touchstart', this.StopScrollingFrame, _detectPassiveEvents2.default.hasSupport ? { passive: true } : false); // Stop animation if user touches the screen during animation.\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Remove all events, since component is no longer mounted.\n window.removeEventListener('scroll', this.HandleScroll);\n window.removeEventListener('wheel', this.StopScrollingFrame, false);\n window.removeEventListener('touchstart', this.StopScrollingFrame, false);\n }\n }, {\n key: 'HandleScroll',\n value: function HandleScroll() {\n var _props = this.props,\n ShowAtPosition = _props.ShowAtPosition,\n TransitionClassName = _props.TransitionClassName;\n // window.pageYOffset = current scroll position\n // ShowAtPosition = position at which we want the button to show.\n\n if (window.pageYOffset > ShowAtPosition) {\n // styles.Toggled = the class name we want applied to transition the button in.\n this.setState({ ToggleScrollUp: TransitionClassName });\n } else {\n // remove the class name\n this.setState({ ToggleScrollUp: '' });\n }\n }\n }, {\n key: 'HandleClick',\n value: function HandleClick() {\n // Is this needed?\n // const { ShowAtPosition } = this.props\n // // For some reason the user was able to click the button.\n // if (window.pageYOffset < ShowAtPosition) {\n // event.preventDefault()\n // this.HandleScroll()\n // }\n // Scroll to StopPosition\n this.StopScrollingFrame(); // Stoping all AnimationFrames\n this.Animation.StartPosition = window.pageYOffset; // current scroll position\n this.Animation.CurrentAnimationTime = 0;\n this.Animation.StartTime = null;\n // Start the scrolling animation.\n this.Animation.AnimationFrame = window.requestAnimationFrame(this.ScrollingFrame);\n }\n }, {\n key: 'ScrollingFrame',\n value: function ScrollingFrame() {\n var _props2 = this.props,\n StopPosition = _props2.StopPosition,\n EasingType = _props2.EasingType,\n AnimationDuration = _props2.AnimationDuration;\n\n var timestamp = Math.floor(Date.now());\n // If StartTime has not been assigned a value, assign it the start timestamp.\n if (!this.Animation.StartTime) {\n this.Animation.StartTime = timestamp;\n }\n\n // set CurrentAnimationTime every iteration of ScrollingFrame()\n this.Animation.CurrentAnimationTime = timestamp - this.Animation.StartTime;\n // if we hit the StopPosition, StopScrollingFrame()\n if (window.pageYOffset <= StopPosition) {\n this.StopScrollingFrame();\n } else {\n // Otherwise continue ScrollingFrame to the StopPosition.\n // Does not support horizontal ScrollingFrame.\n // Let TweenFunctions handle the math to give us a new position based on AnimationDuration and EasingType type\n var YPos = _tweenFunctions2.default[EasingType](this.Animation.CurrentAnimationTime, this.Animation.StartPosition, StopPosition, AnimationDuration);\n if (YPos <= StopPosition) {\n YPos = StopPosition;\n }\n window.scrollTo(0, YPos);\n // Request another frame to be painted\n this.Animation.AnimationFrame = window.requestAnimationFrame(this.ScrollingFrame);\n }\n }\n }, {\n key: 'StopScrollingFrame',\n value: function StopScrollingFrame() {\n // Stop the Animation Frames.\n window.cancelAnimationFrame(this.Animation.AnimationFrame);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = {\n MainStyle: {\n backgroundColor: 'rgba(50, 50, 50, 0.5)',\n height: 50,\n position: 'fixed',\n bottom: 20,\n width: 50,\n WebkitTransition: 'all 0.5s ease-in-out',\n transition: 'all 0.5s ease-in-out',\n transitionProperty: 'opacity, right',\n cursor: 'pointer',\n opacity: 0,\n right: -50,\n zIndex: 1000\n },\n SvgStyle: {\n display: 'inline-block',\n width: '100%',\n height: '100%',\n strokeWidth: 0,\n stroke: 'white',\n fill: 'white'\n },\n ToggledStyle: {\n opacity: 1,\n right: 20\n }\n };\n var _props3 = this.props,\n children = _props3.children,\n style = _props3.style,\n ToggledStyle = _props3.ToggledStyle,\n ContainerClassName = _props3.ContainerClassName;\n var ToggleScrollUp = this.state.ToggleScrollUp;\n\n if (children) {\n var childrenWithProps = _react2.default.Children.map(children, function (child) {\n return _react2.default.cloneElement(child, {\n className: _this2.className\n });\n });\n return _react2.default.createElement(\n 'aside',\n {\n role: 'button',\n 'aria-label': 'Scroll to top of page',\n tabIndex: ToggleScrollUp ? 0 : -1,\n 'data-testid': 'react-scroll-up-button',\n style: _extends({}, style, ToggleScrollUp && ToggledStyle),\n className: ContainerClassName + ' ' + ToggleScrollUp,\n onClick: this.HandleClick,\n onKeyPress: this.HandleClick\n },\n childrenWithProps\n );\n }\n return _react2.default.createElement(\n 'aside',\n {\n role: 'button',\n 'aria-label': 'Scroll to top of page',\n tabIndex: ToggleScrollUp ? 0 : -1,\n 'data-testid': 'react-scroll-up-button',\n className: ContainerClassName + ' ' + ToggleScrollUp,\n style: _extends({}, styles.MainStyle, style, ToggleScrollUp && styles.ToggledStyle, ToggleScrollUp && ToggledStyle),\n onClick: this.HandleClick,\n onKeyPress: this.HandleClick\n },\n _react2.default.createElement(\n 'svg',\n {\n viewBox: '0 0 32 32',\n version: '1.1',\n xmlns: 'http://www.w3.org/2000/svg',\n x: '0',\n y: '0',\n xmlSpace: 'preserve',\n style: styles.SvgStyle\n },\n _react2.default.createElement('path', {\n transform: 'scale(1.4) translate(1,-5)',\n d: 'M19.196 23.429q0 0.232-0.179 0.411l-0.893 0.893q-0.179 0.179-0.411 0.179t-0.411-0.179l-7.018-7.018-7.018 7.018q-0.179 0.179-0.411 0.179t-0.411-0.179l-0.893-0.893q-0.179-0.179-0.179-0.411t0.179-0.411l8.321-8.321q0.179-0.179 0.411-0.179t0.411 0.179l8.321 8.321q0.179 0.179 0.179 0.411zM19.196 16.571q0 0.232-0.179 0.411l-0.893 0.893q-0.179 0.179-0.411 0.179t-0.411-0.179l-7.018-7.018-7.018 7.018q-0.179 0.179-0.411 0.179t-0.411-0.179l-0.893-0.893q-0.179-0.179-0.179-0.411t0.179-0.411l8.321-8.321q0.179-0.179 0.411-0.179t0.411 0.179l8.321 8.321q0.179 0.179 0.179 0.411z' // eslint-disable-line\n })\n )\n );\n }\n }]);\n\n return ScrollUpButton;\n}(_react2.default.Component);\n\nexports.default = ScrollUpButton;\nvar TinyButton = exports.TinyButton = function TinyButton(props) {\n var styles = {\n MainStyle: {\n backgroundColor: 'rgb(87, 86, 86)',\n height: 30,\n position: 'fixed',\n bottom: 20,\n width: 30,\n WebkitTransition: 'all 0.5s ease-in-out',\n transition: 'all 0.5s ease-in-out',\n transitionProperty: 'opacity, right',\n cursor: 'pointer',\n opacity: 0,\n right: -75,\n zIndex: 1000,\n fill: '#292929',\n paddingBottom: 1,\n paddingLeft: 1,\n paddingRight: 1\n },\n ToggledStyle: {\n opacity: 1,\n right: 30\n }\n };\n var style = props.style,\n ToggledStyle = props.ToggledStyle;\n\n return _react2.default.createElement(\n ScrollUpButton,\n _extends({}, props, {\n style: _extends({}, styles.MainStyle, style),\n ToggledStyle: _extends({}, styles.ToggledStyle, ToggledStyle)\n }),\n _react2.default.createElement(\n 'svg',\n {\n viewBox: '0 0 28 28',\n version: '1.1',\n xmlns: 'http://www.w3.org/2000/svg',\n x: '0',\n y: '0',\n xmlSpace: 'preserve'\n },\n _react2.default.createElement('path', {\n d: 'M26.297 20.797l-2.594 2.578c-0.391 0.391-1.016 0.391-1.406 0l-8.297-8.297-8.297 8.297c-0.391 0.391-1.016 0.391-1.406 0l-2.594-2.578c-0.391-0.391-0.391-1.031 0-1.422l11.594-11.578c0.391-0.391 1.016-0.391 1.406 0l11.594 11.578c0.391 0.391 0.391 1.031 0 1.422z' // eslint-disable-line\n })\n )\n );\n};\n\nvar CircleArrow = exports.CircleArrow = function CircleArrow(props) {\n var styles = {\n MainStyle: {\n backgroundColor: 'rgb(255, 255, 255)',\n borderRadius: '50%',\n border: '5px solid black',\n height: 50,\n position: 'fixed',\n bottom: 20,\n width: 50,\n WebkitTransition: 'all 0.5s ease-in-out',\n transition: 'all 0.5s ease-in-out',\n transitionProperty: 'opacity, right',\n cursor: 'pointer',\n opacity: 0,\n right: -75\n },\n ToggledStyle: {\n opacity: 1,\n right: 20\n }\n };\n var style = props.style,\n ToggledStyle = props.ToggledStyle;\n\n return _react2.default.createElement(\n ScrollUpButton,\n _extends({}, props, {\n style: _extends({}, styles.MainStyle, style),\n ToggledStyle: _extends({}, styles.ToggledStyle, ToggledStyle)\n }),\n _react2.default.createElement(\n 'svg',\n { viewBox: '0 0 32 32' },\n _react2.default.createElement('path', {\n d: 'M27.414 12.586l-10-10c-0.781-0.781-2.047-0.781-2.828 0l-10 10c-0.781 0.781-0.781 2.047 0 2.828s2.047 0.781 2.828 0l6.586-6.586v19.172c0 1.105 0.895 2 2 2s2-0.895 2-2v-19.172l6.586 6.586c0.39 0.39 0.902 0.586 1.414 0.586s1.024-0.195 1.414-0.586c0.781-0.781 0.781-2.047 0-2.828z' // eslint-disable-line\n })\n )\n );\n};\n\nvar VerticleButton = exports.VerticleButton = function VerticleButton(props) {\n var styles = {\n MainStyle: {\n backgroundColor: 'rgb(58, 56, 56)',\n position: 'fixed',\n bottom: 40,\n padding: '5px 10px',\n WebkitTransition: 'all 0.5s ease-in-out',\n transition: 'all 0.5s ease-in-out',\n transitionProperty: 'opacity, right',\n cursor: 'pointer',\n opacity: 0,\n right: -75,\n transform: 'rotate(-90deg)'\n },\n ToggledStyle: {\n opacity: 1,\n right: 10\n }\n };\n var style = props.style,\n ToggledStyle = props.ToggledStyle;\n\n return _react2.default.createElement(\n ScrollUpButton,\n _extends({}, props, {\n style: _extends({}, styles.MainStyle, style),\n ToggledStyle: _extends({}, styles.ToggledStyle, ToggledStyle)\n }),\n _react2.default.createElement(\n 'span',\n { style: { fontSize: 23, color: 'white' } },\n 'UP \\u2192'\n )\n );\n};\n\nScrollUpButton.defaultProps = {\n ContainerClassName: 'ScrollUpButton__Container',\n StopPosition: 0,\n ShowAtPosition: 150,\n EasingType: 'easeOutCubic',\n AnimationDuration: 500,\n TransitionClassName: 'ScrollUpButton__Toggled',\n style: {},\n ToggledStyle: {},\n children: null\n};\n\nfunction LessThanShowAtPosition(props, propName, componentName) {\n var ShowAtPosition = props.ShowAtPosition;\n\n if (props[propName]) {\n // eslint-disable-line\n var value = props[propName];\n if (typeof value === 'number') {\n if (value >= ShowAtPosition) {\n // Validate the incoming prop value againt the ShowAtPosition prop\n return new Error(propName + ' (' + value + ') in ' + componentName + ' must be less then prop: ShowAtPosition (' + ShowAtPosition + ')');\n }\n return null;\n }\n return new Error(propName + ' in ' + componentName + ' must be a number.');\n }\n return null;\n}\n\nScrollUpButton.propTypes = {\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n StopPosition: LessThanShowAtPosition,\n ShowAtPosition: _propTypes2.default.number, // show button under this position,\n EasingType: _propTypes2.default.oneOf(['linear', 'easeInQuad', 'easeOutQuad', 'easeInOutQuad', 'easeInCubic', 'easeOutCubic', 'easeInOutCubic', 'easeInQuart', 'easeOutQuart', 'easeInOutQuart', 'easeInQuint', 'easeOutQuint', 'easeInOutQuint', 'easeInSine', 'easeOutSine', 'easeInOutSine', 'easeInExpo', 'easeOutExpo', 'easeInOutExpo', 'easeInCirc', 'easeOutCirc', 'easeInOutCirc', 'easeInElastic', 'easeOutElastic', 'easeInOutElastic', 'easeInBack', 'easeOutBack', 'easeInOutBack', 'easeInBounce', 'easeOutBounce', 'easeInOutBounce']),\n AnimationDuration: _propTypes2.default.number, // seconds\n style: _propTypes2.default.object, // eslint-disable-line react/forbid-prop-types\n ToggledStyle: _propTypes2.default.object, // eslint-disable-line react/forbid-prop-types\n ContainerClassName: _propTypes2.default.string,\n TransitionClassName: _propTypes2.default.string\n};","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n/* global window, document */\n\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _subscribeUiEvent = require('subscribe-ui-event');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactAddonsShallowCompare = require('react-addons-shallow-compare');\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\n// constants\nvar STATUS_ORIGINAL = 0; // The default status, locating at the original position.\nvar STATUS_RELEASED = 1; // The released status, locating at somewhere on document but not default one.\nvar STATUS_FIXED = 2; // The sticky status, locating fixed to the top or the bottom of screen.\n\nvar TRANSFORM_PROP = 'transform';\n\n// global variable for all instances\nvar doc;\nvar docBody;\nvar docEl;\nvar canEnableTransforms = true; // Use transform by default, so no Sticky on lower-end browser when no Modernizr\nvar M;\nvar scrollDelta = 0;\nvar win;\nvar winHeight = -1;\n\nvar Sticky = (function (_Component) {\n _inherits(Sticky, _Component);\n\n function Sticky(props, context) {\n _classCallCheck(this, Sticky);\n\n _get(Object.getPrototypeOf(Sticky.prototype), 'constructor', this).call(this, props, context);\n this.handleResize = this.handleResize.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleScrollStart = this.handleScrollStart.bind(this);\n this.delta = 0;\n this.stickyTop = 0;\n this.stickyBottom = 0;\n this.frozen = false;\n this.skipNextScrollEvent = false;\n this.scrollTop = -1;\n\n this.bottomBoundaryTarget;\n this.topTarget;\n this.subscribers;\n\n this.state = {\n top: 0, // A top offset from viewport top where Sticky sticks to when scrolling up\n bottom: 0, // A bottom offset from viewport top where Sticky sticks to when scrolling down\n width: 0, // Sticky width\n height: 0, // Sticky height\n x: 0, // The original x of Sticky\n y: 0, // The original y of Sticky\n topBoundary: 0, // The top boundary on document\n bottomBoundary: Infinity, // The bottom boundary on document\n status: STATUS_ORIGINAL, // The Sticky status\n pos: 0, // Real y-axis offset for rendering position-fixed and position-relative\n activated: false // once browser info is available after mounted, it becomes true to avoid checksum error\n };\n }\n\n _createClass(Sticky, [{\n key: 'getTargetHeight',\n value: function getTargetHeight(target) {\n return target && target.offsetHeight || 0;\n }\n }, {\n key: 'getTopPosition',\n value: function getTopPosition(top) {\n // TODO, topTarget is for current layout, may remove\n // a top argument can be provided to override reading from the props\n top = top || this.props.top || this.props.topTarget || 0;\n if (typeof top === 'string') {\n if (!this.topTarget) {\n this.topTarget = doc.querySelector(top);\n }\n top = this.getTargetHeight(this.topTarget);\n }\n return top;\n }\n }, {\n key: 'getTargetBottom',\n value: function getTargetBottom(target) {\n if (!target) {\n return -1;\n }\n var rect = target.getBoundingClientRect();\n return this.scrollTop + rect.bottom;\n }\n }, {\n key: 'getBottomBoundary',\n value: function getBottomBoundary(bottomBoundary) {\n // a bottomBoundary can be provided to avoid reading from the props\n var boundary = bottomBoundary || this.props.bottomBoundary;\n\n // TODO, bottomBoundary was an object, depricate it later.\n if (typeof boundary === 'object') {\n boundary = boundary.value || boundary.target || 0;\n }\n\n if (typeof boundary === 'string') {\n if (!this.bottomBoundaryTarget) {\n this.bottomBoundaryTarget = doc.querySelector(boundary);\n }\n boundary = this.getTargetBottom(this.bottomBoundaryTarget);\n }\n return boundary && boundary > 0 ? boundary : Infinity;\n }\n }, {\n key: 'reset',\n value: function reset() {\n this.setState({\n status: STATUS_ORIGINAL,\n pos: 0\n });\n }\n }, {\n key: 'release',\n value: function release(pos) {\n this.setState({\n status: STATUS_RELEASED,\n pos: pos - this.state.y\n });\n }\n }, {\n key: 'fix',\n value: function fix(pos) {\n this.setState({\n status: STATUS_FIXED,\n pos: pos\n });\n }\n\n /**\n * Update the initial position, width, and height. It should update whenever children change.\n * @param {Object} options optional top and bottomBoundary new values\n */\n }, {\n key: 'updateInitialDimension',\n value: function updateInitialDimension(options) {\n options = options || {};\n\n var outerRect = this.outerElement.getBoundingClientRect();\n var innerRect = this.innerElement.getBoundingClientRect();\n\n var width = outerRect.width || outerRect.right - outerRect.left;\n var height = innerRect.height || innerRect.bottom - innerRect.top;;\n var outerY = outerRect.top + this.scrollTop;\n\n this.setState({\n top: this.getTopPosition(options.top),\n bottom: Math.min(this.state.top + height, winHeight),\n width: width,\n height: height,\n x: outerRect.left,\n y: outerY,\n bottomBoundary: this.getBottomBoundary(options.bottomBoundary),\n topBoundary: outerY\n });\n }\n }, {\n key: 'handleResize',\n value: function handleResize(e, ae) {\n if (this.props.shouldFreeze()) {\n return;\n }\n\n winHeight = ae.resize.height;\n this.updateInitialDimension();\n this.update();\n }\n }, {\n key: 'handleScrollStart',\n value: function handleScrollStart(e, ae) {\n this.frozen = this.props.shouldFreeze();\n\n if (this.frozen) {\n return;\n }\n\n if (this.scrollTop === ae.scroll.top) {\n // Scroll position hasn't changed,\n // do nothing\n this.skipNextScrollEvent = true;\n } else {\n this.scrollTop = ae.scroll.top;\n this.updateInitialDimension();\n }\n }\n }, {\n key: 'handleScroll',\n value: function handleScroll(e, ae) {\n // Scroll doesn't need to be handled\n if (this.skipNextScrollEvent) {\n this.skipNextScrollEvent = false;\n return;\n }\n\n scrollDelta = ae.scroll.delta;\n this.scrollTop = ae.scroll.top;\n this.update();\n }\n\n /**\n * Update Sticky position.\n */\n }, {\n key: 'update',\n value: function update() {\n var disabled = !this.props.enabled || this.state.bottomBoundary - this.state.topBoundary <= this.state.height || this.state.width === 0 && this.state.height === 0;\n\n if (disabled) {\n if (this.state.status !== STATUS_ORIGINAL) {\n this.reset();\n }\n return;\n }\n\n var delta = scrollDelta;\n // \"top\" and \"bottom\" are the positions that this.state.top and this.state.bottom project\n // on document from viewport.\n var top = this.scrollTop + this.state.top;\n var bottom = this.scrollTop + this.state.bottom;\n\n // There are 2 principles to make sure Sticky won't get wrong so much:\n // 1. Reset Sticky to the original postion when \"top\" <= topBoundary\n // 2. Release Sticky to the bottom boundary when \"bottom\" >= bottomBoundary\n if (top <= this.state.topBoundary) {\n // #1\n this.reset();\n } else if (bottom >= this.state.bottomBoundary) {\n // #2\n this.stickyBottom = this.state.bottomBoundary;\n this.stickyTop = this.stickyBottom - this.state.height;\n this.release(this.stickyTop);\n } else {\n if (this.state.height > winHeight - this.state.top) {\n // In this case, Sticky is higher then viewport minus top offset\n switch (this.state.status) {\n case STATUS_ORIGINAL:\n this.release(this.state.y);\n this.stickyTop = this.state.y;\n this.stickyBottom = this.stickyTop + this.state.height;\n // Commentting out \"break\" is on purpose, because there is a chance to transit to FIXED\n // from ORIGINAL when calling window.scrollTo().\n // break;\n case STATUS_RELEASED:\n // If \"top\" and \"bottom\" are inbetween stickyTop and stickyBottom, then Sticky is in\n // RELEASE status. Otherwise, it changes to FIXED status, and its bottom sticks to\n // viewport bottom when scrolling down, or its top sticks to viewport top when scrolling up.\n this.stickyBottom = this.stickyTop + this.state.height;\n if (delta > 0 && bottom > this.stickyBottom) {\n this.fix(this.state.bottom - this.state.height);\n } else if (delta < 0 && top < this.stickyTop) {\n this.fix(this.state.top);\n }\n break;\n case STATUS_FIXED:\n var toRelease = true;\n var pos = this.state.pos;\n var height = this.state.height;\n // In regular cases, when Sticky is in FIXED status,\n // 1. it's top will stick to the screen top,\n // 2. it's bottom will stick to the screen bottom,\n // 3. if not the cases above, then it's height gets changed\n if (delta > 0 && pos === this.state.top) {\n // case 1, and scrolling down\n this.stickyTop = top - delta;\n this.stickyBottom = this.stickyTop + height;\n } else if (delta < 0 && pos === this.state.bottom - height) {\n // case 2, and scrolling up\n this.stickyBottom = bottom - delta;\n this.stickyTop = this.stickyBottom - height;\n } else if (pos !== this.state.bottom - height && pos !== this.state.top) {\n // case 3\n // This case only happens when Sticky's bottom sticks to the screen bottom and\n // its height gets changed. Sticky should be in RELEASE status and update its\n // sticky bottom by calculating how much height it changed.\n var deltaHeight = pos + height - this.state.bottom;\n this.stickyBottom = bottom - delta + deltaHeight;\n this.stickyTop = this.stickyBottom - height;\n } else {\n toRelease = false;\n }\n\n if (toRelease) {\n this.release(this.stickyTop);\n }\n break;\n }\n } else {\n // In this case, Sticky is shorter then viewport minus top offset\n // and will always fix to the top offset of viewport\n this.fix(this.state.top);\n }\n }\n this.delta = delta;\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.updateInitialDimension(nextProps);\n this.update();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this = this;\n\n if (prevState.status !== this.state.status && this.props.onStateChange) {\n this.props.onStateChange({ status: this.state.status });\n }\n // if the props for enabling are toggled, then trigger the update or reset depending on the current props\n if (prevProps.enabled !== this.props.enabled) {\n if (this.props.enabled) {\n this.setState({ activated: true }, function () {\n _this.updateInitialDimension();\n _this.update();\n });\n } else {\n this.setState({ activated: false }, function () {\n _this.reset();\n });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var subscribers = this.subscribers || [];\n for (var i = subscribers.length - 1; i >= 0; i--) {\n this.subscribers[i].unsubscribe();\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Only initialize the globals if this is the first\n // time this component type has been mounted\n if (!win) {\n win = window;\n doc = document;\n docEl = doc.documentElement;\n docBody = doc.body;\n winHeight = win.innerHeight || docEl.clientHeight;\n M = window.Modernizr;\n // No Sticky on lower-end browser when no Modernizr\n if (M && M.prefixed) {\n canEnableTransforms = M.csstransforms3d;\n TRANSFORM_PROP = M.prefixed('transform');\n }\n }\n\n // when mount, the scrollTop is not necessary on the top\n this.scrollTop = docBody.scrollTop + docEl.scrollTop;\n\n if (this.props.enabled) {\n this.setState({ activated: true });\n this.updateInitialDimension();\n this.update();\n }\n // bind the listeners regardless if initially enabled - allows the component to toggle sticky functionality\n this.subscribers = [(0, _subscribeUiEvent.subscribe)('scrollStart', this.handleScrollStart.bind(this), { useRAF: true }), (0, _subscribeUiEvent.subscribe)('scroll', this.handleScroll.bind(this), { useRAF: true, enableScrollInfo: true }), (0, _subscribeUiEvent.subscribe)('resize', this.handleResize.bind(this), { enableResizeInfo: true })];\n }\n }, {\n key: 'translate',\n value: function translate(style, pos) {\n var enableTransforms = canEnableTransforms && this.props.enableTransforms;\n if (enableTransforms && this.state.activated) {\n style[TRANSFORM_PROP] = 'translate3d(0,' + Math.round(pos) + 'px,0)';\n } else {\n style.top = pos + 'px';\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return !this.props.shouldFreeze() && (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames,\n _this2 = this;\n\n // TODO, \"overflow: auto\" prevents collapse, need a good way to get children height\n var innerStyle = {\n position: this.state.status === STATUS_FIXED ? 'fixed' : 'relative',\n top: this.state.status === STATUS_FIXED ? '0px' : '',\n zIndex: this.props.innerZ\n };\n var outerStyle = {};\n\n // always use translate3d to enhance the performance\n this.translate(innerStyle, this.state.pos);\n if (this.state.status !== STATUS_ORIGINAL) {\n innerStyle.width = this.state.width + 'px';\n outerStyle.height = this.state.height + 'px';\n }\n\n var outerClasses = (0, _classnames2['default'])('sticky-outer-wrapper', this.props.className, (_classNames = {}, _defineProperty(_classNames, this.props.activeClass, this.state.status === STATUS_FIXED), _defineProperty(_classNames, this.props.releasedClass, this.state.status === STATUS_RELEASED), _classNames));\n\n var children = this.props.children;\n\n return _react2['default'].createElement(\n 'div',\n { ref: function (outer) {\n _this2.outerElement = outer;\n }, className: outerClasses, style: outerStyle },\n _react2['default'].createElement(\n 'div',\n { ref: function (inner) {\n _this2.innerElement = inner;\n }, className: 'sticky-inner-wrapper', style: innerStyle },\n typeof children === 'function' ? children({ status: this.state.status }) : children\n )\n );\n }\n }]);\n\n return Sticky;\n})(_react.Component);\n\nSticky.displayName = 'Sticky';\n\nSticky.defaultProps = {\n shouldFreeze: function shouldFreeze() {\n return false;\n },\n enabled: true,\n top: 0,\n bottomBoundary: 0,\n enableTransforms: true,\n activeClass: 'active',\n releasedClass: 'released',\n onStateChange: null\n};\n\n/**\n * @param {Bool} enabled A switch to enable or disable Sticky.\n * @param {String/Number} top A top offset px for Sticky. Could be a selector representing a node\n * whose height should serve as the top offset.\n * @param {String/Number} bottomBoundary A bottom boundary px on document where Sticky will stop.\n * Could be a selector representing a node whose bottom should serve as the bottom boudary.\n */\nSticky.propTypes = {\n enabled: _propTypes2['default'].bool,\n top: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number]),\n bottomBoundary: _propTypes2['default'].oneOfType([_propTypes2['default'].object, // TODO, may remove\n _propTypes2['default'].string, _propTypes2['default'].number]),\n enableTransforms: _propTypes2['default'].bool,\n activeClass: _propTypes2['default'].string,\n releasedClass: _propTypes2['default'].string,\n onStateChange: _propTypes2['default'].func,\n shouldFreeze: _propTypes2['default'].func,\n innerZ: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])\n};\n\nSticky.STATUS_ORIGINAL = STATUS_ORIGINAL;\nSticky.STATUS_RELEASED = STATUS_RELEASED;\nSticky.STATUS_FIXED = STATUS_FIXED;\n\nmodule.exports = Sticky;\n","module.exports = require('./dist/Sticky');\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"reactTippy\", [\"react\", \"popper.js\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"reactTippy\"] = factory(require(\"react\"), require(\"popper.js\"), require(\"react-dom\"));\n\telse\n\t\troot[\"reactTippy\"] = factory(root[\"React\"], root[\"Popper\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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/******/\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 15);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Browser = exports.Browser = {};\n\nif (typeof window !== 'undefined') {\n Browser.SUPPORTED = 'requestAnimationFrame' in window;\n Browser.SUPPORTS_TOUCH = 'ontouchstart' in window;\n Browser.touch = false;\n Browser.dynamicInputDetection = true;\n // Chrome device/touch emulation can make this dynamic\n Browser.iOS = function () {\n return (/iPhone|iPad|iPod/.test(navigator.userAgent) && !window.MSStream\n );\n };\n}\n\n/**\n* The global storage array which holds all data reference objects\n* from every instance\n* This allows us to hide tooltips from all instances, finding the ref when\n* clicking on the body, and for followCursor\n*/\nvar Store = exports.Store = [];\n\n/**\n* Selector constants used for grabbing elements\n*/\nvar Selectors = exports.Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-tooltip-content',\n CIRCLE: '[x-circle]',\n ARROW: '[x-arrow]',\n TOOLTIPPED_EL: '[data-tooltipped]',\n CONTROLLER: '[data-tippy-controller]'\n};\n\n/**\n* The default settings applied to each instance\n*/\nvar Defaults = exports.Defaults = {\n html: false,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n arrowSize: 'regular',\n delay: 0,\n trigger: 'mouseenter focus',\n duration: 350,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n size: 'regular',\n distance: 10,\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n flipDuration: 350,\n sticky: false,\n stickyDuration: 200,\n appendTo: function appendTo() {\n return document.body;\n },\n zIndex: 9999,\n touchHold: false,\n performance: false,\n dynamicTitle: false,\n useContext: false,\n reactInstance: undefined,\n popperOptions: {},\n open: undefined,\n onRequestClose: function onRequestClose() {}\n};\n\n/**\n* The keys of the defaults object for reducing down into a new object\n* Used in `getIndividualSettings()`\n*/\nvar DefaultsKeys = exports.DefaultsKeys = Browser.SUPPORTED && Object.keys(Defaults);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefix;\n/**\n* Returns the supported prefixed property - only `webkit` is needed, `moz`, `ms` and `o` are obsolete\n* @param {String} property\n* @return {String} - browser supported prefixed property\n*/\nfunction prefix(property) {\n var prefixes = [false, 'webkit'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var _prefix = prefixes[i];\n var prefixedProp = _prefix ? '' + _prefix + upperProp : property;\n if (typeof window.document.body.style[prefixedProp] !== 'undefined') {\n return prefixedProp;\n }\n }\n\n return null;\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = find;\n/**\n* Ponyfill for Array.prototype.find\n* @param {Array} arr\n* @param {Function} checkFn\n* @return item in the array\n*/\nfunction find(arr, checkFn) {\n if (Array.prototype.find) {\n return arr.find(checkFn);\n }\n\n // use `filter` as fallback\n return arr.filter(checkFn)[0];\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getCorePlacement;\n/**\n* Returns the non-shifted placement (e.g., 'bottom-start' => 'bottom')\n* @param {String} placement\n* @return {String}\n*/\nfunction getCorePlacement(placement) {\n return placement.replace(/-.+/, '');\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = closest;\n\nvar _matches = __webpack_require__(8);\n\n/**\n* Ponyfill to get the closest parent element\n* @param {Element} element - child of parent to be returned\n* @param {String} parentSelector - selector to match the parent if found\n* @return {Element}\n*/\nfunction closest(element, parentSelector) {\n var _closest = Element.prototype.closest || function (selector) {\n var el = this;\n while (el) {\n if (_matches.matches.call(el, selector)) {\n return el;\n }\n el = el.parentElement;\n }\n };\n\n return _closest.call(element, parentSelector);\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = defer;\n/**\n* Waits until next repaint to execute a fn\n* @param {Function} fn\n*/\nfunction defer(fn) {\n window.requestAnimationFrame(function () {\n setTimeout(fn, 0);\n });\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getInnerElements;\n\nvar _globals = __webpack_require__(0);\n\n/**\n* Returns inner elements of the popper element\n* @param {Element} popper\n* @return {Object}\n*/\nfunction getInnerElements(popper) {\n return {\n tooltip: popper.querySelector(_globals.Selectors.TOOLTIP),\n circle: popper.querySelector(_globals.Selectors.CIRCLE),\n content: popper.querySelector(_globals.Selectors.CONTENT)\n };\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVisible;\n/**\n* Determines if a popper is currently visible\n* @param {Element} popper\n* @return {Boolean}\n*/\nfunction isVisible(popper) {\n return popper.style.visibility === 'visible';\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction defaultMatchSelector(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n}\n\nvar matches = exports.matches = typeof window === 'undefined' ? defaultMatchSelector : Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || defaultMatchSelector;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(13);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _tippy = __webpack_require__(30);\n\nvar _tippy2 = _interopRequireDefault(_tippy);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultProps = {\n html: null,\n position: 'top',\n animation: 'shift',\n animateFill: true,\n arrow: false,\n delay: 0,\n hideDelay: 0,\n trigger: 'mouseenter focus',\n duration: 375,\n hideDuration: 375,\n interactive: false,\n interactiveBorder: 2,\n theme: 'dark',\n offset: 0,\n hideOnClick: true,\n multiple: false,\n followCursor: false,\n inertia: false,\n popperOptions: {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onHide: function onHide() {},\n onHidden: function onHidden() {},\n disabled: false,\n arrowSize: 'regular',\n size: 'regular',\n className: '',\n style: {},\n distance: 10,\n onRequestClose: function onRequestClose() {},\n sticky: false,\n stickyDuration: 200,\n touchHold: false,\n unmountHTMLWhenHide: false\n};\n\nvar propKeys = Object.keys(defaultProps);\n\nvar detectPropsChanged = function detectPropsChanged(props, prevProps) {\n var result = [];\n propKeys.forEach(function (key) {\n if (props[key] !== prevProps[key]) {\n result.push(key);\n }\n });\n return result;\n};\n\nvar Tooltip = function (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip(props) {\n _classCallCheck(this, Tooltip);\n\n var _this = _possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).call(this, props));\n\n _this.initTippy = _this._initTippy.bind(_this);\n _this.destroyTippy = _this._destroyTippy.bind(_this);\n _this.updateTippy = _this._updateTippy.bind(_this);\n _this.updateReactDom = _this._updateReactDom.bind(_this);\n _this.showTooltip = _this._showTooltip.bind(_this);\n _this.hideTooltip = _this._hideTooltip.bind(_this);\n _this.updateSettings = _this._updateSettings.bind(_this);\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n this.initTippy();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n this.destroyTippy();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // enable and disabled\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.props.disabled === false && prevProps.disabled === true) {\n this.updateSettings('disabled', false);\n this.destroyTippy();\n this.initTippy();\n return;\n }\n\n if (this.props.disabled === true && prevProps.disabled === false) {\n this.updateSettings('disabled', true);\n this.destroyTippy();\n return;\n }\n\n // open\n if (this.props.open === true && !prevProps.open) {\n this.updateSettings('open', true);\n setTimeout(function () {\n _this2.showTooltip();\n }, 0);\n }\n if (this.props.open === false && prevProps.open === true) {\n this.updateSettings('open', false);\n this.hideTooltip();\n }\n\n if (this.props.html !== prevProps.html) {\n this.updateReactDom();\n }\n\n // Update content\n if (this.props.title !== prevProps.title) {\n this.updateTippy();\n }\n\n // update otherProps\n var propChanges = detectPropsChanged(this.props, prevProps);\n propChanges.forEach(function (key) {\n _this2.updateSettings(key, _this2.props[key]);\n });\n }\n }, {\n key: '_showTooltip',\n value: function _showTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.show(popper, this.props.duration);\n }\n }\n }, {\n key: '_hideTooltip',\n value: function _hideTooltip() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.hide(popper, this.props.hideDuration);\n }\n }\n }, {\n key: '_updateSettings',\n value: function _updateSettings(name, value) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.updateSettings(popper, name, value);\n }\n }\n }, {\n key: '_updateReactDom',\n value: function _updateReactDom() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n this.updateSettings('reactDOM', this.props.html);\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n var isVisible = popper.style.visibility === 'visible' || this.props.open;\n if (isVisible) {\n this.tippy.updateForReact(popper, this.props.html);\n }\n }\n }\n }, {\n key: '_updateTippy',\n value: function _updateTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.tippy.update(popper);\n }\n }\n }, {\n key: '_initTippy',\n value: function _initTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (!this.props.disabled) {\n this.tooltipDOM.setAttribute('title', this.props.title);\n this.tippy = (0, _tippy2.default)(this.tooltipDOM, {\n disabled: this.props.disabled,\n position: this.props.position,\n animation: this.props.animation,\n animateFill: this.props.animateFill,\n arrow: this.props.arrow,\n arrowSize: this.props.arrowSize,\n delay: this.props.delay,\n hideDelay: this.props.hideDelay,\n trigger: this.props.trigger,\n duration: this.props.duration,\n hideDuration: this.props.hideDuration,\n interactive: this.props.interactive,\n interactiveBorder: this.props.interactiveBorder,\n theme: this.props.theme,\n offset: this.props.offset,\n hideOnClick: this.props.hideOnClick,\n multiple: this.props.multiple,\n size: this.props.size,\n followCursor: this.props.followCursor,\n inertia: this.props.inertia,\n popperOptions: this.props.popperOptions,\n onShow: this.props.onShow,\n onShown: this.props.onShown,\n onHide: this.props.onHide,\n onHidden: this.props.onHidden,\n distance: this.props.distance,\n reactDOM: this.props.html,\n unmountHTMLWhenHide: this.props.unmountHTMLWhenHide,\n open: this.props.open,\n sticky: this.props.sticky,\n stickyDuration: this.props.stickyDuration,\n touchHold: this.props.touchHold,\n onRequestClose: this.props.onRequestClose,\n useContext: this.props.useContext,\n reactInstance: this.props.useContext ? this : undefined,\n performance: true,\n html: this.props.rawTemplate ? this.props.rawTemplate : undefined\n });\n if (this.props.open) {\n this.showTooltip();\n }\n } else {\n this.tippy = null;\n }\n }\n }, {\n key: '_destroyTippy',\n value: function _destroyTippy() {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n if (this.tippy) {\n var popper = this.tippy.getPopperElement(this.tooltipDOM);\n this.updateSettings('open', false);\n this.tippy.hide(popper, 0);\n this.tippy.destroy(popper);\n this.tippy = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n return _react2.default.createElement(\n 'div',\n {\n ref: function ref(tooltip) {\n _this3.tooltipDOM = tooltip;\n },\n title: this.props.title,\n className: this.props.className,\n tabIndex: this.props.tabIndex,\n style: _extends({\n display: 'inline'\n }, this.props.style)\n },\n this.props.children\n );\n }\n }]);\n\n return Tooltip;\n}(_react.Component);\n\nTooltip.defaultProps = defaultProps;\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = followCursorHandler;\n\nvar _globals = __webpack_require__(0);\n\nvar _getCorePlacement = __webpack_require__(3);\n\nvar _getCorePlacement2 = _interopRequireDefault(_getCorePlacement);\n\nvar _find = __webpack_require__(2);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _closest = __webpack_require__(4);\n\nvar _closest2 = _interopRequireDefault(_closest);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Mousemove event listener callback method for follow cursor setting\n* @param {MouseEvent} e\n*/\nfunction followCursorHandler(e) {\n var _this = this;\n\n var refData = (0, _find2.default)(_globals.Store, function (refData) {\n return refData.el === _this;\n });\n\n var popper = refData.popper,\n offset = refData.settings.offset;\n\n\n var position = (0, _getCorePlacement2.default)(popper.getAttribute('x-placement'));\n var halfPopperWidth = Math.round(popper.offsetWidth / 2);\n var halfPopperHeight = Math.round(popper.offsetHeight / 2);\n var viewportPadding = 5;\n var pageWidth = document.documentElement.offsetWidth || document.body.offsetWidth;\n\n var pageX = e.pageX,\n pageY = e.pageY;\n\n\n var x = void 0,\n y = void 0;\n\n switch (position) {\n case 'top':\n x = pageX - halfPopperWidth + offset;\n y = pageY - 2.25 * halfPopperHeight;\n break;\n case 'left':\n x = pageX - 2 * halfPopperWidth - 10;\n y = pageY - halfPopperHeight + offset;\n break;\n case 'right':\n x = pageX + halfPopperHeight;\n y = pageY - halfPopperHeight + offset;\n break;\n case 'bottom':\n x = pageX - halfPopperWidth + offset;\n y = pageY + halfPopperHeight / 1.5;\n break;\n }\n\n var isRightOverflowing = pageX + viewportPadding + halfPopperWidth + offset > pageWidth;\n var isLeftOverflowing = pageX - viewportPadding - halfPopperWidth + offset < 0;\n\n // Prevent left/right overflow\n if (position === 'top' || position === 'bottom') {\n if (isRightOverflowing) {\n x = pageWidth - viewportPadding - 2 * halfPopperWidth;\n }\n\n if (isLeftOverflowing) {\n x = viewportPadding;\n }\n }\n\n popper.style[(0, _prefix2.default)('transform')] = 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getOffsetDistanceInPx;\n\nvar _globals = __webpack_require__(0);\n\n/**\n* Returns the distance taking into account the default distance due to\n* the transform: translate setting in CSS\n* @param {Number} distance\n* @return {String}\n*/\nfunction getOffsetDistanceInPx(distance) {\n return -(distance - _globals.Defaults.distance) + 'px';\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = removeTitle;\n/**\n* Removes the title from the tooltipped element, setting `data-original-title`\n* appropriately\n* @param {Element} el\n*/\nfunction removeTitle(el) {\n var title = el.getAttribute('title');\n\n // Only set `data-original-title` attr if there is a title\n if (title) {\n el.setAttribute('data-original-title', title);\n }\n\n el.removeAttribute('title');\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(13);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _component = __webpack_require__(9);\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar withTooltip = function withTooltip(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (_ref) {\n var props = _objectWithoutProperties(_ref, []);\n\n return _react2.default.createElement(\n _component2.default,\n options,\n _react2.default.createElement(Component, props)\n );\n };\n};\n\nexports.default = withTooltip;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withTooltip = exports.Tooltip = undefined;\n\nvar _component = __webpack_require__(9);\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _hoc = __webpack_require__(14);\n\nvar _hoc2 = _interopRequireDefault(_hoc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tooltip = _component2.default;\nexports.withTooltip = _hoc2.default;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = bindEventListeners;\n\nvar _globals = __webpack_require__(0);\n\nvar _hideAllPoppers = __webpack_require__(25);\n\nvar _hideAllPoppers2 = _interopRequireDefault(_hideAllPoppers);\n\nvar _closest = __webpack_require__(4);\n\nvar _closest2 = _interopRequireDefault(_closest);\n\nvar _find = __webpack_require__(2);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _matches = __webpack_require__(8);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Adds the needed event listeners\n*/\nfunction bindEventListeners() {\n var touchHandler = function touchHandler() {\n _globals.Browser.touch = true;\n\n if (_globals.Browser.iOS()) {\n document.body.classList.add('tippy-touch');\n }\n\n if (_globals.Browser.dynamicInputDetection && window.performance) {\n document.addEventListener('mousemove', mousemoveHandler);\n }\n };\n\n var mousemoveHandler = function () {\n var time = void 0;\n\n return function () {\n var now = performance.now();\n\n // Chrome 60+ is 1 mousemove per rAF, use 20ms time difference\n if (now - time < 20) {\n _globals.Browser.touch = false;\n document.removeEventListener('mousemove', mousemoveHandler);\n if (!_globals.Browser.iOS()) {\n document.body.classList.remove('tippy-touch');\n }\n }\n\n time = now;\n };\n }();\n\n var clickHandler = function clickHandler(event) {\n // Simulated events dispatched on the document\n if (!(event.target instanceof Element)) {\n return (0, _hideAllPoppers2.default)();\n }\n\n var el = (0, _closest2.default)(event.target, _globals.Selectors.TOOLTIPPED_EL);\n var popper = (0, _closest2.default)(event.target, _globals.Selectors.POPPER);\n\n if (popper) {\n var ref = (0, _find2.default)(_globals.Store, function (ref) {\n return ref.popper === popper;\n });\n var interactive = ref.settings.interactive;\n\n if (interactive) return;\n }\n\n if (el) {\n var _ref = (0, _find2.default)(_globals.Store, function (ref) {\n return ref.el === el;\n });\n var _ref$settings = _ref.settings,\n hideOnClick = _ref$settings.hideOnClick,\n multiple = _ref$settings.multiple,\n trigger = _ref$settings.trigger;\n\n // Hide all poppers except the one belonging to the element that was clicked IF\n // `multiple` is false AND they are a touch user, OR\n // `multiple` is false AND it's triggered by a click\n\n if (!multiple && _globals.Browser.touch || !multiple && trigger.indexOf('click') !== -1) {\n return (0, _hideAllPoppers2.default)(_ref);\n }\n\n // If hideOnClick is not strictly true or triggered by a click don't hide poppers\n if (hideOnClick !== true || trigger.indexOf('click') !== -1) return;\n }\n\n // Don't trigger a hide for tippy controllers, and don't needlessly run loop\n if ((0, _closest2.default)(event.target, _globals.Selectors.CONTROLLER) || !document.querySelector(_globals.Selectors.POPPER)) return;\n\n (0, _hideAllPoppers2.default)();\n };\n\n var blurHandler = function blurHandler(event) {\n var _document = document,\n el = _document.activeElement;\n\n if (el && el.blur && _matches.matches.call(el, _globals.Selectors.TOOLTIPPED_EL)) {\n el.blur();\n }\n };\n\n // Hook events\n document.addEventListener('click', clickHandler);\n document.addEventListener('touchstart', touchHandler);\n window.addEventListener('blur', blurHandler);\n\n if (!_globals.Browser.SUPPORTS_TOUCH && (navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0)) {\n document.addEventListener('pointerdown', touchHandler);\n }\n}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPopperElement;\n\nvar _getCorePlacement = __webpack_require__(3);\n\nvar _getCorePlacement2 = _interopRequireDefault(_getCorePlacement);\n\nvar _getOffsetDistanceInPx = __webpack_require__(11);\n\nvar _getOffsetDistanceInPx2 = _interopRequireDefault(_getOffsetDistanceInPx);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Creates a popper element then returns it\n* @param {Number} id - the popper id\n* @param {String} title - the tooltip's `title` attribute\n* @param {Object} settings - individual settings\n* @return {Element} - the popper element\n*/\nfunction createPopperElement(id, title, settings) {\n var position = settings.position,\n distance = settings.distance,\n arrow = settings.arrow,\n animateFill = settings.animateFill,\n inertia = settings.inertia,\n animation = settings.animation,\n arrowSize = settings.arrowSize,\n size = settings.size,\n theme = settings.theme,\n html = settings.html,\n zIndex = settings.zIndex,\n interactive = settings.interactive;\n\n\n var popper = document.createElement('div');\n popper.setAttribute('class', 'tippy-popper');\n popper.setAttribute('role', 'tooltip');\n popper.setAttribute('aria-hidden', 'true');\n popper.setAttribute('id', 'tippy-tooltip-' + id);\n popper.style.zIndex = zIndex;\n\n var tooltip = document.createElement('div');\n tooltip.setAttribute('class', 'tippy-tooltip tippy-tooltip--' + size + ' leave');\n tooltip.setAttribute('data-animation', animation);\n\n theme.split(' ').forEach(function (t) {\n tooltip.classList.add(t + '-theme');\n });\n\n if (arrow) {\n // Add an arrow\n var _arrow = document.createElement('div');\n _arrow.setAttribute('class', 'arrow-' + arrowSize);\n _arrow.setAttribute('x-arrow', '');\n tooltip.appendChild(_arrow);\n }\n\n if (animateFill) {\n // Create animateFill circle element for animation\n tooltip.setAttribute('data-animatefill', '');\n var circle = document.createElement('div');\n circle.setAttribute('class', 'leave');\n circle.setAttribute('x-circle', '');\n tooltip.appendChild(circle);\n }\n\n if (inertia) {\n // Change transition timing function cubic bezier\n tooltip.setAttribute('data-inertia', '');\n }\n\n if (interactive) {\n tooltip.setAttribute('data-interactive', '');\n }\n\n // Tooltip content (text or HTML)\n var content = document.createElement('div');\n content.setAttribute('class', 'tippy-tooltip-content');\n\n if (html) {\n var templateId = void 0;\n\n if (html instanceof Element) {\n content.appendChild(html);\n templateId = '#' + html.id || 'tippy-html-template';\n } else {\n content.innerHTML = document.getElementById(html.replace('#', '')).innerHTML;\n templateId = html;\n }\n\n popper.classList.add('html-template');\n interactive && popper.setAttribute('tabindex', '-1');\n tooltip.setAttribute('data-template-id', templateId);\n } else {\n content.innerHTML = title;\n }\n\n // Init distance. Further updates are made in the popper instance's `onUpdate()` method\n tooltip.style[(0, _getCorePlacement2.default)(position)] = (0, _getOffsetDistanceInPx2.default)(distance);\n\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n\n return popper;\n}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = createPopperInstance;\n\nvar _popper = __webpack_require__(38);\n\nvar _popper2 = _interopRequireDefault(_popper);\n\nvar _defer = __webpack_require__(5);\n\nvar _defer2 = _interopRequireDefault(_defer);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _getCorePlacement = __webpack_require__(3);\n\nvar _getCorePlacement2 = _interopRequireDefault(_getCorePlacement);\n\nvar _getInnerElements2 = __webpack_require__(6);\n\nvar _getInnerElements3 = _interopRequireDefault(_getInnerElements2);\n\nvar _getOffsetDistanceInPx = __webpack_require__(11);\n\nvar _getOffsetDistanceInPx2 = _interopRequireDefault(_getOffsetDistanceInPx);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Creates a new popper instance\n* @param {Object} data\n* @return {Object} - the popper instance\n*/\nfunction createPopperInstance(data) {\n var el = data.el,\n popper = data.popper,\n _data$settings = data.settings,\n position = _data$settings.position,\n popperOptions = _data$settings.popperOptions,\n offset = _data$settings.offset,\n distance = _data$settings.distance,\n flipDuration = _data$settings.flipDuration;\n\n var _getInnerElements = (0, _getInnerElements3.default)(popper),\n tooltip = _getInnerElements.tooltip;\n\n var config = _extends({\n placement: position\n }, popperOptions || {}, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n flip: _extends({\n padding: distance + 5 /* 5px from viewport boundary */\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {}),\n offset: _extends({\n offset: offset\n }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {})\n }),\n onUpdate: function onUpdate() {\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[(0, _getCorePlacement2.default)(popper.getAttribute('x-placement'))] = (0, _getOffsetDistanceInPx2.default)(distance);\n }\n });\n\n // Update the popper's position whenever its content changes\n // Not supported in IE10 unless polyfilled\n if (window.MutationObserver) {\n var styles = popper.style;\n\n var observer = new MutationObserver(function () {\n styles[(0, _prefix2.default)('transitionDuration')] = '0ms';\n data.popperInstance.update();\n (0, _defer2.default)(function () {\n styles[(0, _prefix2.default)('transitionDuration')] = flipDuration + 'ms';\n });\n });\n\n observer.observe(popper, {\n childList: true,\n subtree: true,\n characterData: true\n });\n\n data._mutationObserver = observer;\n }\n\n return new _popper2.default(el, popper, config);\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTooltips;\n\nvar _getIndividualSettings = __webpack_require__(24);\n\nvar _getIndividualSettings2 = _interopRequireDefault(_getIndividualSettings);\n\nvar _createPopperElement = __webpack_require__(17);\n\nvar _createPopperElement2 = _interopRequireDefault(_createPopperElement);\n\nvar _createTrigger = __webpack_require__(20);\n\nvar _createTrigger2 = _interopRequireDefault(_createTrigger);\n\nvar _getEventListenerHandlers = __webpack_require__(23);\n\nvar _getEventListenerHandlers2 = _interopRequireDefault(_getEventListenerHandlers);\n\nvar _evaluateSettings = __webpack_require__(21);\n\nvar _evaluateSettings2 = _interopRequireDefault(_evaluateSettings);\n\nvar _removeTitle = __webpack_require__(12);\n\nvar _removeTitle2 = _interopRequireDefault(_removeTitle);\n\nvar _globals = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar idCounter = 1;\n\n/**\n* Creates tooltips for all el elements that match the instance's selector\n* @param {Element[]} els\n* @return {Object[]} Array of ref data objects\n*/\nfunction createTooltips(els) {\n var _this = this;\n\n return els.reduce(function (a, el) {\n var id = idCounter;\n\n var settings = (0, _evaluateSettings2.default)(_this.settings.performance ? _this.settings : (0, _getIndividualSettings2.default)(el, _this.settings));\n\n var html = settings.html,\n trigger = settings.trigger,\n touchHold = settings.touchHold;\n\n\n var title = el.getAttribute('title');\n if (!title && !html) return a;\n\n el.setAttribute('data-tooltipped', '');\n el.setAttribute('aria-describedby', 'tippy-tooltip-' + id);\n (0, _removeTitle2.default)(el);\n\n var popper = (0, _createPopperElement2.default)(id, title, settings);\n var handlers = _getEventListenerHandlers2.default.call(_this, el, popper, settings);\n\n var listeners = [];\n\n trigger.trim().split(' ').forEach(function (event) {\n return listeners = listeners.concat((0, _createTrigger2.default)(event, el, handlers, touchHold));\n });\n\n a.push({\n id: id,\n el: el,\n popper: popper,\n settings: settings,\n listeners: listeners,\n tippyInstance: _this\n });\n\n idCounter++;\n\n return a;\n }, []);\n}\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTrigger;\n\nvar _globals = __webpack_require__(0);\n\n/**\n* Creates a trigger\n* @param {Object} event - the custom event specified in the `trigger` setting\n* @param {Element} el - tooltipped element\n* @param {Object} handlers - the handlers for each listener\n* @param {Boolean} touchHold\n* @return {Array} - array of listener objects\n*/\nfunction createTrigger(event, el, handlers, touchHold) {\n var listeners = [];\n\n if (event === 'manual') return listeners;\n\n // Enter\n el.addEventListener(event, handlers.handleTrigger);\n listeners.push({\n event: event,\n handler: handlers.handleTrigger\n });\n\n // Leave\n if (event === 'mouseenter') {\n if (_globals.Browser.SUPPORTS_TOUCH && touchHold) {\n el.addEventListener('touchstart', handlers.handleTrigger);\n listeners.push({\n event: 'touchstart',\n handler: handlers.handleTrigger\n });\n el.addEventListener('touchend', handlers.handleMouseleave);\n listeners.push({\n event: 'touchend',\n handler: handlers.handleMouseleave\n });\n }\n\n el.addEventListener('mouseleave', handlers.handleMouseleave);\n listeners.push({\n event: 'mouseleave',\n handler: handlers.handleMouseleave\n });\n }\n\n if (event === 'focus') {\n el.addEventListener('blur', handlers.handleBlur);\n listeners.push({\n event: 'blur',\n handler: handlers.handleBlur\n });\n }\n\n return listeners;\n}\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = evaluateSettings;\n/**\n* Evaluates/modifies the settings object for appropriate behavior\n* @param {Object} settings\n* @return {Object} modified/evaluated settings\n*/\nfunction evaluateSettings(settings) {\n // animateFill is disabled if an arrow is true\n if (settings.arrow) {\n settings.animateFill = false;\n }\n\n // reassign appendTo into the result of evaluating appendTo\n // if it's set as a function instead of Element\n if (settings.appendTo && typeof settings.appendTo === 'function') {\n settings.appendTo = settings.appendTo();\n }\n\n return settings;\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getArrayOfElements;\n/**\n* Returns an array of elements based on the selector input\n* @param {String|Element|Element[]} selector\n* @return {Element[]}\n*/\nfunction getArrayOfElements(selector) {\n if (selector instanceof Element) {\n return [selector];\n }\n\n if (Array.isArray(selector)) {\n return selector;\n }\n\n return [].slice.call(document.querySelectorAll(selector));\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getEventListenerHandlers;\n\nvar _globals = __webpack_require__(0);\n\nvar _isVisible = __webpack_require__(7);\n\nvar _isVisible2 = _interopRequireDefault(_isVisible);\n\nvar _closest = __webpack_require__(4);\n\nvar _closest2 = _interopRequireDefault(_closest);\n\nvar _cursorIsOutsideInteractiveBorder = __webpack_require__(32);\n\nvar _cursorIsOutsideInteractiveBorder2 = _interopRequireDefault(_cursorIsOutsideInteractiveBorder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Returns relevant listener callbacks for each ref\n* @param {Element} el\n* @param {Element} popper\n* @param {Object} settings\n* @return {Object} - relevant listener handlers\n*/\nfunction getEventListenerHandlers(el, popper, settings) {\n var _this = this;\n\n var position = settings.position,\n delay = settings.delay,\n duration = settings.duration,\n interactive = settings.interactive,\n interactiveBorder = settings.interactiveBorder,\n distance = settings.distance,\n hideOnClick = settings.hideOnClick,\n trigger = settings.trigger,\n touchHold = settings.touchHold,\n touchWait = settings.touchWait;\n\n\n var showDelay = void 0,\n hideDelay = void 0;\n\n var clearTimeouts = function clearTimeouts() {\n clearTimeout(showDelay);\n clearTimeout(hideDelay);\n };\n\n var _show = function _show() {\n clearTimeouts();\n\n // Not hidden. For clicking when it also has a `focus` event listener\n if ((0, _isVisible2.default)(popper)) return;\n\n var _delay = Array.isArray(delay) ? delay[0] : delay;\n\n if (delay) {\n showDelay = setTimeout(function () {\n return _this.show(popper);\n }, _delay);\n } else {\n _this.show(popper);\n }\n };\n\n var show = function show(event) {\n return _this.callbacks.wait ? _this.callbacks.wait.call(popper, _show, event) : _show();\n };\n\n var hide = function hide() {\n clearTimeouts();\n\n var _delay = Array.isArray(delay) ? delay[1] : delay;\n\n if (delay) {\n hideDelay = setTimeout(function () {\n return _this.hide(popper);\n }, _delay);\n } else {\n _this.hide(popper);\n }\n };\n\n var handleTrigger = function handleTrigger(event) {\n var mouseenterTouch = event.type === 'mouseenter' && _globals.Browser.SUPPORTS_TOUCH && _globals.Browser.touch;\n\n if (mouseenterTouch && touchHold) return;\n\n // Toggle show/hide when clicking click-triggered tooltips\n var isClick = event.type === 'click';\n var isNotPersistent = hideOnClick !== 'persistent';\n\n isClick && (0, _isVisible2.default)(popper) && isNotPersistent ? hide() : show(event);\n\n if (mouseenterTouch && _globals.Browser.iOS() && el.click) {\n el.click();\n }\n };\n\n var handleMouseleave = function handleMouseleave(event) {\n\n // Don't fire 'mouseleave', use the 'touchend'\n if (event.type === 'mouseleave' && _globals.Browser.SUPPORTS_TOUCH && _globals.Browser.touch && touchHold) {\n return;\n }\n\n if (interactive) {\n // Temporarily handle mousemove to check if the mouse left somewhere\n // other than its popper\n var handleMousemove = function handleMousemove(event) {\n\n var triggerHide = function triggerHide() {\n document.body.removeEventListener('mouseleave', hide);\n document.removeEventListener('mousemove', handleMousemove);\n hide();\n };\n\n var closestTooltippedEl = (0, _closest2.default)(event.target, _globals.Selectors.TOOLTIPPED_EL);\n\n var isOverPopper = (0, _closest2.default)(event.target, _globals.Selectors.POPPER) === popper;\n var isOverEl = closestTooltippedEl === el;\n var isClickTriggered = trigger.indexOf('click') !== -1;\n var isOverOtherTooltippedEl = closestTooltippedEl && closestTooltippedEl !== el;\n\n if (isOverOtherTooltippedEl) {\n return triggerHide();\n }\n\n if (isOverPopper || isOverEl || isClickTriggered) return;\n\n if ((0, _cursorIsOutsideInteractiveBorder2.default)(event, popper, settings)) {\n triggerHide();\n }\n };\n\n document.body.addEventListener('mouseleave', hide);\n document.addEventListener('mousemove', handleMousemove);\n\n return;\n }\n\n // If it's not interactive, just hide it\n hide();\n };\n\n var handleBlur = function handleBlur(event) {\n // Ignore blur on touch devices, if there is no `relatedTarget`, hide\n // If the related target is a popper, ignore\n if (!event.relatedTarget || _globals.Browser.touch) return;\n if ((0, _closest2.default)(event.relatedTarget, _globals.Selectors.POPPER)) return;\n\n hide();\n };\n\n return {\n handleTrigger: handleTrigger,\n handleMouseleave: handleMouseleave,\n handleBlur: handleBlur\n };\n}\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getIndividualSettings;\n\nvar _globals = __webpack_require__(0);\n\n/**\n* Returns an object of settings to override global settings\n* @param {Element} el - the tooltipped element\n* @param {Object} instanceSettings\n* @return {Object} - individual settings\n*/\nfunction getIndividualSettings(el, instanceSettings) {\n var settings = _globals.DefaultsKeys.reduce(function (acc, key) {\n var val = el.getAttribute('data-' + key.toLowerCase()) || instanceSettings[key];\n\n // Convert strings to booleans\n if (val === 'false') val = false;\n if (val === 'true') val = true;\n\n // Convert number strings to true numbers\n if (isFinite(val) && !isNaN(parseFloat(val))) {\n val = parseFloat(val);\n }\n\n // Convert array strings to actual arrays\n if (typeof val === 'string' && val.trim().charAt(0) === '[') {\n val = JSON.parse(val);\n }\n\n acc[key] = val;\n\n return acc;\n }, {});\n\n return Object.assign({}, instanceSettings, settings);\n}\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hideAllPoppers;\n\nvar _globals = __webpack_require__(0);\n\n/**\n* Hides all poppers\n* @param {Object} exclude - refData to exclude if needed\n*/\nfunction hideAllPoppers(exclude) {\n _globals.Store.forEach(function (refData) {\n var popper = refData.popper,\n tippyInstance = refData.tippyInstance,\n _refData$settings = refData.settings,\n appendTo = _refData$settings.appendTo,\n hideOnClick = _refData$settings.hideOnClick,\n trigger = _refData$settings.trigger;\n\n // Don't hide already hidden ones\n\n if (!appendTo.contains(popper)) return;\n\n // hideOnClick can have the truthy value of 'persistent', so strict check is needed\n var isHideOnClick = hideOnClick === true || trigger.indexOf('focus') !== -1;\n var isNotCurrentRef = !exclude || popper !== exclude.popper;\n\n if (isHideOnClick && isNotCurrentRef) {\n refData.settings.onRequestClose();\n tippyInstance.hide(popper);\n }\n });\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = init;\n\nvar _bindEventListeners = __webpack_require__(16);\n\nvar _bindEventListeners2 = _interopRequireDefault(_bindEventListeners);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* To run a single time, once DOM is presumed to be ready\n* @return {Boolean} whether the function has run or not\n*/\nfunction init() {\n if (init.done) return false;\n init.done = true;\n\n (0, _bindEventListeners2.default)();\n\n return true;\n}\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = makeSticky;\n\nvar _defer = __webpack_require__(5);\n\nvar _defer2 = _interopRequireDefault(_defer);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _isVisible = __webpack_require__(7);\n\nvar _isVisible2 = _interopRequireDefault(_isVisible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Updates a popper's position on each animation frame to make it stick to a moving element\n* @param {Object} refData\n*/\nfunction makeSticky(refData) {\n var popper = refData.popper,\n popperInstance = refData.popperInstance,\n stickyDuration = refData.settings.stickyDuration;\n\n\n var applyTransitionDuration = function applyTransitionDuration() {\n return popper.style[(0, _prefix2.default)('transitionDuration')] = stickyDuration + 'ms';\n };\n\n var removeTransitionDuration = function removeTransitionDuration() {\n return popper.style[(0, _prefix2.default)('transitionDuration')] = '';\n };\n\n var updatePosition = function updatePosition() {\n popperInstance && popperInstance.scheduleUpdate();\n\n applyTransitionDuration();\n\n (0, _isVisible2.default)(popper) ? window.requestAnimationFrame(updatePosition) : removeTransitionDuration();\n };\n\n // Wait until Popper's position has been updated initially\n (0, _defer2.default)(updatePosition);\n}\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mountPopper;\n\nvar _globals = __webpack_require__(0);\n\nvar _followCursorHandler = __webpack_require__(10);\n\nvar _followCursorHandler2 = _interopRequireDefault(_followCursorHandler);\n\nvar _createPopperInstance = __webpack_require__(18);\n\nvar _createPopperInstance2 = _interopRequireDefault(_createPopperInstance);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Appends the popper and creates a popper instance if one does not exist\n* Also updates its position if need be and enables event listeners\n* @param {Object} data - the element/popper reference data\n*/\nfunction mountPopper(data) {\n var el = data.el,\n popper = data.popper,\n _data$settings = data.settings,\n appendTo = _data$settings.appendTo,\n followCursor = _data$settings.followCursor;\n\n // Already on the DOM\n\n if (appendTo.contains(popper)) return;\n\n appendTo.appendChild(popper);\n\n if (!data.popperInstance) {\n data.popperInstance = (0, _createPopperInstance2.default)(data);\n } else {\n data.popperInstance.update();\n if (!followCursor || _globals.Browser.touch) {\n data.popperInstance.enableEventListeners();\n }\n }\n\n // Since touch is determined dynamically, followCursor is set on mount\n if (followCursor && !_globals.Browser.touch) {\n el.addEventListener('mousemove', _followCursorHandler2.default);\n data.popperInstance.disableEventListeners();\n }\n}\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onTransitionEnd;\n\nvar _globals = __webpack_require__(0);\n\nvar _getInnerElements2 = __webpack_require__(6);\n\nvar _getInnerElements3 = _interopRequireDefault(_getInnerElements2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Prepares the callback functions for `show` and `hide` methods\n* @param {Object} data\n* @param {Number} duration\n* @param {Function} callback - callback function to fire once transitions complete\n*/\nfunction onTransitionEnd(data, duration, callback) {\n // Make callback synchronous if duration is 0\n if (!duration) {\n return callback();\n }\n\n var _getInnerElements = (0, _getInnerElements3.default)(data.popper),\n tooltip = _getInnerElements.tooltip;\n\n var transitionendFired = false;\n\n var listenerCallback = function listenerCallback(e) {\n if (e.target === tooltip && !transitionendFired) {\n transitionendFired = true;\n callback();\n }\n };\n\n // Fire callback upon transition completion\n tooltip.addEventListener('webkitTransitionEnd', listenerCallback);\n tooltip.addEventListener('transitionend', listenerCallback);\n\n // Fallback: transitionend listener sometimes may not fire\n clearTimeout(data._transitionendTimeout);\n data._transitionendTimeout = setTimeout(function () {\n if (!transitionendFired) {\n callback();\n }\n }, duration);\n}\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n/* Utility functions */\n\n\n/* Core library functions */\n\n\nvar _globals = __webpack_require__(0);\n\nvar _reactDom = __webpack_require__(39);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _init = __webpack_require__(26);\n\nvar _init2 = _interopRequireDefault(_init);\n\nvar _defer = __webpack_require__(5);\n\nvar _defer2 = _interopRequireDefault(_defer);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _find = __webpack_require__(2);\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _findIndex = __webpack_require__(34);\n\nvar _findIndex2 = _interopRequireDefault(_findIndex);\n\nvar _removeTitle = __webpack_require__(12);\n\nvar _removeTitle2 = _interopRequireDefault(_removeTitle);\n\nvar _elementIsInViewport = __webpack_require__(33);\n\nvar _elementIsInViewport2 = _interopRequireDefault(_elementIsInViewport);\n\nvar _triggerReflow = __webpack_require__(37);\n\nvar _triggerReflow2 = _interopRequireDefault(_triggerReflow);\n\nvar _modifyClassList = __webpack_require__(35);\n\nvar _modifyClassList2 = _interopRequireDefault(_modifyClassList);\n\nvar _getInnerElements4 = __webpack_require__(6);\n\nvar _getInnerElements5 = _interopRequireDefault(_getInnerElements4);\n\nvar _applyTransitionDuration = __webpack_require__(31);\n\nvar _applyTransitionDuration2 = _interopRequireDefault(_applyTransitionDuration);\n\nvar _isVisible = __webpack_require__(7);\n\nvar _isVisible2 = _interopRequireDefault(_isVisible);\n\nvar _noop = __webpack_require__(36);\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nvar _followCursorHandler = __webpack_require__(10);\n\nvar _followCursorHandler2 = _interopRequireDefault(_followCursorHandler);\n\nvar _getArrayOfElements = __webpack_require__(22);\n\nvar _getArrayOfElements2 = _interopRequireDefault(_getArrayOfElements);\n\nvar _onTransitionEnd = __webpack_require__(29);\n\nvar _onTransitionEnd2 = _interopRequireDefault(_onTransitionEnd);\n\nvar _mountPopper = __webpack_require__(28);\n\nvar _mountPopper2 = _interopRequireDefault(_mountPopper);\n\nvar _makeSticky = __webpack_require__(27);\n\nvar _makeSticky2 = _interopRequireDefault(_makeSticky);\n\nvar _createTooltips = __webpack_require__(19);\n\nvar _createTooltips2 = _interopRequireDefault(_createTooltips);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @param {String|Element|Element[]} selector\n* @param {Object} settings (optional) - the object of settings to be applied to the instance\n*/\nvar Tippy = function () {\n function Tippy(selector) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Tippy);\n\n // Use default browser tooltip on unsupported browsers\n if (!_globals.Browser.SUPPORTED) return;\n\n (0, _init2.default)();\n\n this.state = {\n destroyed: false\n };\n\n this.selector = selector;\n\n this.settings = _extends({}, _globals.Defaults, settings);\n\n if (settings.show || settings.shown || settings.hide || settings.hidden) {\n console.warn('Callbacks without the `on` prefix are deprecated (with the exception of `wait`).' + ' Use onShow, onShown, onHide, and onHidden instead.');\n }\n\n this.callbacks = {\n wait: settings.wait,\n show: settings.onShow || settings.show || _noop2.default,\n shown: settings.onShown || settings.shown || _noop2.default,\n hide: settings.onHide || settings.hide || _noop2.default,\n hidden: settings.onHidden || settings.hidden || _noop2.default\n };\n\n this.store = _createTooltips2.default.call(this, (0, _getArrayOfElements2.default)(selector));\n _globals.Store.push.apply(_globals.Store, this.store);\n }\n\n /**\n * Returns the reference element's popper element\n * @param {Element} el\n * @return {Element}\n */\n\n\n _createClass(Tippy, [{\n key: 'getPopperElement',\n value: function getPopperElement(el) {\n try {\n return (0, _find2.default)(this.store, function (data) {\n return data.el === el;\n }).popper;\n } catch (e) {\n console.error('[getPopperElement]: Element passed as the argument does not exist in the instance');\n }\n }\n\n /**\n * Returns a popper's reference element\n * @param {Element} popper\n * @return {Element}\n */\n\n }, {\n key: 'getReferenceElement',\n value: function getReferenceElement(popper) {\n try {\n return (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n }).el;\n } catch (e) {\n console.error('[getReferenceElement]: Popper passed as the argument does not exist in the instance');\n }\n }\n\n /**\n * Returns the reference data object from either the reference element or popper element\n * @param {Element} x (reference element or popper)\n * @return {Object}\n */\n\n }, {\n key: 'getReferenceData',\n value: function getReferenceData(x) {\n return (0, _find2.default)(this.store, function (data) {\n return data.el === x || data.popper === x;\n });\n }\n\n /**\n * Update settings\n * @param {DOMElement} - popper\n * @param {string} - name\n * @param {string} - value\n */\n\n }, {\n key: 'updateSettings',\n value: function updateSettings(popper, name, value) {\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n var newSettings = _extends({}, data.settings, _defineProperty({}, name, value));\n data.settings = newSettings;\n }\n }, {\n key: 'updateForReact',\n\n\n /**\n * Update for React\n * @param {DOMElement} - popper\n * @param {ReactElement} - content\n */\n value: function updateForReact(popper, updatedContent) {\n var tooltipContent = popper.querySelector(_globals.Selectors.CONTENT);\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n\n var _data$settings = data.settings,\n useContext = _data$settings.useContext,\n reactInstance = _data$settings.reactInstance;\n\n if (useContext) {\n _reactDom2.default.unstable_renderSubtreeIntoContainer(data.settings.reactInstance, updatedContent, tooltipContent);\n } else {\n _reactDom2.default.render(updatedContent, tooltipContent);\n }\n }\n /**\n * Shows a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n\n }, {\n key: 'show',\n value: function show(popper, customDuration) {\n var _this = this;\n\n if (this.state.destroyed) return;\n\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n\n var _getInnerElements = (0, _getInnerElements5.default)(popper),\n tooltip = _getInnerElements.tooltip,\n circle = _getInnerElements.circle,\n content = _getInnerElements.content;\n\n if (!document.body.contains(data.el)) {\n this.destroy(popper);\n return;\n }\n\n this.callbacks.show.call(popper);\n\n // Custom react\n if (data && data.settings && data.settings.open === false) {\n return;\n }\n\n if (data.settings.reactDOM) {\n this.updateForReact(popper, data.settings.reactDOM);\n }\n // end: Custom react\n\n var el = data.el,\n _data$settings2 = data.settings,\n appendTo = _data$settings2.appendTo,\n sticky = _data$settings2.sticky,\n interactive = _data$settings2.interactive,\n followCursor = _data$settings2.followCursor,\n flipDuration = _data$settings2.flipDuration,\n duration = _data$settings2.duration,\n dynamicTitle = _data$settings2.dynamicTitle;\n\n\n if (dynamicTitle) {\n var title = el.getAttribute('title');\n if (title) {\n content.innerHTML = title;\n (0, _removeTitle2.default)(el);\n }\n }\n\n var _duration = customDuration !== undefined ? customDuration : Array.isArray(duration) ? duration[0] : duration;\n\n // Prevent a transition when popper changes position\n (0, _applyTransitionDuration2.default)([popper, tooltip, circle], 0);\n\n (0, _mountPopper2.default)(data);\n\n popper.style.visibility = 'visible';\n popper.setAttribute('aria-hidden', 'false');\n\n // Wait for popper's position to update\n (0, _defer2.default)(function () {\n // Sometimes the arrow will not be in the correct position, force another update\n if (!followCursor || _globals.Browser.touch) {\n data.popperInstance.update();\n (0, _applyTransitionDuration2.default)([popper], flipDuration);\n }\n\n // Re-apply transition durations\n (0, _applyTransitionDuration2.default)([tooltip, circle], _duration);\n\n // Make content fade out a bit faster than the tooltip if `animateFill`\n if (circle) content.style.opacity = 1;\n\n // Interactive tooltips receive a class of 'active'\n interactive && el.classList.add('active');\n\n // Update popper's position on every animation frame\n sticky && (0, _makeSticky2.default)(data);\n\n // Repaint/reflow is required for CSS transition when appending\n (0, _triggerReflow2.default)(tooltip, circle);\n\n (0, _modifyClassList2.default)([tooltip, circle], function (list) {\n list.contains('tippy-notransition') && list.remove('tippy-notransition');\n list.remove('leave');\n list.add('enter');\n });\n\n // Wait for transitions to complete\n (0, _onTransitionEnd2.default)(data, _duration, function () {\n if (!(0, _isVisible2.default)(popper) || data._onShownFired) return;\n\n // Focus interactive tooltips only\n interactive && popper.focus();\n // Remove transitions from tooltip\n tooltip.classList.add('tippy-notransition');\n // Prevents shown() from firing more than once from early transition cancellations\n data._onShownFired = true;\n\n _this.callbacks.shown.call(popper);\n });\n });\n }\n\n /**\n * Hides a popper\n * @param {Element} popper\n * @param {Number} customDuration (optional)\n */\n\n }, {\n key: 'hide',\n value: function hide(popper, customDuration) {\n var _this2 = this;\n\n if (this.state.destroyed) return;\n\n this.callbacks.hide.call(popper);\n\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n\n var _getInnerElements2 = (0, _getInnerElements5.default)(popper),\n tooltip = _getInnerElements2.tooltip,\n circle = _getInnerElements2.circle,\n content = _getInnerElements2.content;\n\n // custom react\n // Prevent hide if open\n\n\n if (data.settings.disabled === false && data.settings.open) {\n return;\n }\n\n var isUnmount = data && data.settings && data.settings.unmountHTMLWhenHide && data.settings.reactDOM;\n // end: custom react\n\n var el = data.el,\n _data$settings3 = data.settings,\n appendTo = _data$settings3.appendTo,\n sticky = _data$settings3.sticky,\n interactive = _data$settings3.interactive,\n followCursor = _data$settings3.followCursor,\n html = _data$settings3.html,\n trigger = _data$settings3.trigger,\n duration = _data$settings3.duration;\n\n\n var _duration = customDuration !== undefined ? customDuration : Array.isArray(duration) ? duration[1] : duration;\n\n data._onShownFired = false;\n interactive && el.classList.remove('active');\n\n popper.style.visibility = 'hidden';\n popper.setAttribute('aria-hidden', 'true');\n\n (0, _applyTransitionDuration2.default)([tooltip, circle, circle ? content : null], _duration);\n\n if (circle) content.style.opacity = 0;\n\n (0, _modifyClassList2.default)([tooltip, circle], function (list) {\n list.contains('tippy-tooltip') && list.remove('tippy-notransition');\n list.remove('enter');\n list.add('leave');\n });\n\n // Re-focus click-triggered html elements\n // and the tooltipped element IS in the viewport (otherwise it causes unsightly scrolling\n // if the tooltip is closed and the element isn't in the viewport anymore)\n if (html && trigger.indexOf('click') !== -1 && (0, _elementIsInViewport2.default)(el)) {\n el.focus();\n }\n\n // Wait for transitions to complete\n (0, _onTransitionEnd2.default)(data, _duration, function () {\n // `isVisible` is not completely reliable to determine if we shouldn't\n // run the hidden callback, we need to check the computed opacity style.\n // This prevents glitchy behavior of the transition when quickly showing\n // and hiding a tooltip.\n if ((0, _isVisible2.default)(popper) || !appendTo.contains(popper) || getComputedStyle(tooltip).opacity === '1') return;\n\n el.removeEventListener('mousemove', _followCursorHandler2.default);\n data.popperInstance.disableEventListeners();\n appendTo.removeChild(popper);\n\n _this2.callbacks.hidden.call(popper);\n\n // custom react\n if (isUnmount) {\n _reactDom2.default.unmountComponentAtNode(content);\n }\n });\n }\n\n /**\n * Updates a popper with new content\n * @param {Element} popper\n */\n\n }, {\n key: 'update',\n value: function update(popper) {\n if (this.state.destroyed) return;\n\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n\n var _getInnerElements3 = (0, _getInnerElements5.default)(popper),\n content = _getInnerElements3.content;\n\n var el = data.el,\n html = data.settings.html;\n\n\n if (html instanceof Element) {\n console.warn('Aborted: update() should not be used if `html` is a DOM element');\n return;\n }\n\n content.innerHTML = html ? document.getElementById(html.replace('#', '')).innerHTML : el.getAttribute('title') || el.getAttribute('data-original-title');\n\n if (!html) (0, _removeTitle2.default)(el);\n }\n\n /**\n * Destroys a popper\n * @param {Element} popper\n * @param {Boolean} _isLast - private param used by destroyAll to optimize\n */\n\n }, {\n key: 'destroy',\n value: function destroy(popper, _isLast) {\n var _this3 = this;\n\n if (this.state.destroyed) return;\n\n var data = (0, _find2.default)(this.store, function (data) {\n return data.popper === popper;\n });\n\n var el = data.el,\n popperInstance = data.popperInstance,\n listeners = data.listeners,\n _mutationObserver = data._mutationObserver;\n\n // Ensure the popper is hidden\n\n if ((0, _isVisible2.default)(popper)) {\n this.hide(popper, 0);\n }\n\n // Remove Tippy-only event listeners from tooltipped element\n listeners.forEach(function (listener) {\n return el.removeEventListener(listener.event, listener.handler);\n });\n\n // Restore original title\n el.setAttribute('title', el.getAttribute('data-original-title'));\n\n el.removeAttribute('data-original-title');\n el.removeAttribute('data-tooltipped');\n el.removeAttribute('aria-describedby');\n\n popperInstance && popperInstance.destroy();\n _mutationObserver && _mutationObserver.disconnect();\n\n // Remove from store\n _globals.Store.splice((0, _findIndex2.default)(_globals.Store, function (data) {\n return data.popper === popper;\n }), 1);\n\n // Ensure filter is called only once\n if (_isLast === undefined || _isLast) {\n this.store = _globals.Store.filter(function (data) {\n return data.tippyInstance === _this3;\n });\n }\n }\n\n /**\n * Destroys all tooltips created by the instance\n */\n\n }, {\n key: 'destroyAll',\n value: function destroyAll() {\n var _this4 = this;\n\n if (this.state.destroyed) return;\n\n var storeLength = this.store.length;\n\n this.store.forEach(function (_ref, index) {\n var popper = _ref.popper;\n\n _this4.destroy(popper, index === storeLength - 1);\n });\n\n this.store = null;\n this.state.destroyed = true;\n }\n }]);\n\n return Tippy;\n}();\n\nfunction tippy(selector, settings) {\n return new Tippy(selector, settings);\n}\n\ntippy.Browser = _globals.Browser;\ntippy.Defaults = _globals.Defaults;\ntippy.disableDynamicInputDetection = function () {\n return _globals.Browser.dynamicInputDetection = false;\n};\ntippy.enableDynamicInputDetection = function () {\n return _globals.Browser.dynamicInputDetection = true;\n};\n\nexports.default = tippy;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = applyTransitionDuration;\n\nvar _globals = __webpack_require__(0);\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _matches = __webpack_require__(8);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Applies the transition duration to each element\n* @param {Element[]} els - Array of elements\n* @param {Number} duration\n*/\nfunction applyTransitionDuration(els, duration) {\n els.forEach(function (el) {\n if (!el) return;\n\n var isContent = _matches.matches.call(el, _globals.Selectors.CONTENT);\n\n var _duration = isContent ? Math.round(duration / 1.3) : duration;\n\n el.style[(0, _prefix2.default)('transitionDuration')] = _duration + 'ms';\n });\n}\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursorIsOutsideInteractiveBorder;\n\nvar _getCorePlacement = __webpack_require__(3);\n\nvar _getCorePlacement2 = _interopRequireDefault(_getCorePlacement);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Determines if the mouse's cursor is outside the interactive border\n* @param {MouseEvent} event\n* @param {Element} popper\n* @param {Object} settings\n* @return {Boolean}\n*/\nfunction cursorIsOutsideInteractiveBorder(event, popper, settings) {\n if (!popper.getAttribute('x-placement')) return true;\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = settings.interactiveBorder,\n distance = settings.distance;\n\n\n var rect = popper.getBoundingClientRect();\n var corePosition = (0, _getCorePlacement2.default)(popper.getAttribute('x-placement'));\n var borderWithDistance = interactiveBorder + distance;\n\n var exceeds = {\n top: rect.top - y > interactiveBorder,\n bottom: y - rect.bottom > interactiveBorder,\n left: rect.left - x > interactiveBorder,\n right: x - rect.right > interactiveBorder\n };\n\n switch (corePosition) {\n case 'top':\n exceeds.top = rect.top - y > borderWithDistance;\n break;\n case 'bottom':\n exceeds.bottom = y - rect.bottom > borderWithDistance;\n break;\n case 'left':\n exceeds.left = rect.left - x > borderWithDistance;\n break;\n case 'right':\n exceeds.right = x - rect.right > borderWithDistance;\n break;\n }\n\n return exceeds.top || exceeds.bottom || exceeds.left || exceeds.right;\n}\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = elementIsInViewport;\n/**\n* Determines if an element is visible in the viewport\n* @param {Element} el\n* @return {Boolean}\n*/\nfunction elementIsInViewport(el) {\n var rect = el.getBoundingClientRect();\n\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n}\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findIndex;\n\nvar _find = __webpack_require__(2);\n\nvar _find2 = _interopRequireDefault(_find);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Ponyfill for Array.prototype.findIndex\n* @param {Array} arr\n* @param {Function} checkFn\n* @return index of the item in the array\n*/\nfunction findIndex(arr, checkFn) {\n if (Array.prototype.findIndex) {\n return arr.findIndex(checkFn);\n }\n\n // fallback\n return arr.indexOf((0, _find2.default)(arr, checkFn));\n}\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = modifyClassList;\n/**\n* Modifies elements' class lists\n* @param {Element[]} els - Array of elements\n* @param {Function} callback\n*/\nfunction modifyClassList(els, callback) {\n els.forEach(function (el) {\n if (!el) return;\n callback(el.classList);\n });\n}\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = noop;\nfunction noop() {}\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = triggerReflow;\n\nvar _prefix = __webpack_require__(1);\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n* Triggers a document repaint or reflow for CSS transition\n* @param {Element} tooltip\n* @param {Element} circle\n*/\nfunction triggerReflow(tooltip, circle) {\n // Safari needs the specific 'transform' property to be accessed\n circle ? window.getComputedStyle(circle)[(0, _prefix2.default)('transform')] : window.getComputedStyle(tooltip).opacity;\n}\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_38__;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_39__;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=react-tippy.js.map","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","\n\nexport default function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {\n var cellCount = _ref.cellCount,\n cellSize = _ref.cellSize,\n computeMetadataCallback = _ref.computeMetadataCallback,\n computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,\n nextCellsCount = _ref.nextCellsCount,\n nextCellSize = _ref.nextCellSize,\n nextScrollToIndex = _ref.nextScrollToIndex,\n scrollToIndex = _ref.scrollToIndex,\n updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n computeMetadataCallback(computeMetadataCallbackProps);\n\n // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}\n\n/**\n * Helper method that determines when to recalculate row or column metadata.\n */","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\n/**\n * Just-in-time calculates and caches size and position information for a collection of cells.\n */\n\nvar CellSizeAndPositionManager = function () {\n\n // Used in deferred mode to track which cells have been queued for measurement.\n\n // Cache of size and position data for cells, mapped by cell index.\n // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex\n function CellSizeAndPositionManager(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeGetter = _ref.cellSizeGetter,\n estimatedCellSize = _ref.estimatedCellSize;\n\n _classCallCheck(this, CellSizeAndPositionManager);\n\n this._cellSizeAndPositionData = {};\n this._lastMeasuredIndex = -1;\n this._lastBatchedIndex = -1;\n\n this._cellSizeGetter = cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n }\n\n // Measurements for cells up to this index can be trusted; cells afterward should be estimated.\n\n\n _createClass(CellSizeAndPositionManager, [{\n key: 'areOffsetsAdjusted',\n value: function areOffsetsAdjusted() {\n return false;\n }\n }, {\n key: 'configure',\n value: function configure(_ref2) {\n var cellCount = _ref2.cellCount,\n estimatedCellSize = _ref2.estimatedCellSize,\n cellSizeGetter = _ref2.cellSizeGetter;\n\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n this._cellSizeGetter = cellSizeGetter;\n }\n }, {\n key: 'getCellCount',\n value: function getCellCount() {\n return this._cellCount;\n }\n }, {\n key: 'getEstimatedCellSize',\n value: function getEstimatedCellSize() {\n return this._estimatedCellSize;\n }\n }, {\n key: 'getLastMeasuredIndex',\n value: function getLastMeasuredIndex() {\n return this._lastMeasuredIndex;\n }\n }, {\n key: 'getOffsetAdjustment',\n value: function getOffsetAdjustment() {\n return 0;\n }\n\n /**\n * This method returns the size and position for the cell at the specified index.\n * It just-in-time calculates (or used cached values) for cells leading up to the index.\n */\n\n }, {\n key: 'getSizeAndPositionOfCell',\n value: function getSizeAndPositionOfCell(index) {\n if (index < 0 || index >= this._cellCount) {\n throw Error('Requested index ' + index + ' is outside of range 0..' + this._cellCount);\n }\n\n if (index > this._lastMeasuredIndex) {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var _offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n\n for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {\n var _size = this._cellSizeGetter({ index: i });\n\n // undefined or NaN probably means a logic error in the size getter.\n // null means we're using CellMeasurer and haven't yet measured a given index.\n if (_size === undefined || isNaN(_size)) {\n throw Error('Invalid size returned for cell ' + i + ' of value ' + _size);\n } else if (_size === null) {\n this._cellSizeAndPositionData[i] = {\n offset: _offset,\n size: 0\n };\n\n this._lastBatchedIndex = index;\n } else {\n this._cellSizeAndPositionData[i] = {\n offset: _offset,\n size: _size\n };\n\n _offset += _size;\n\n this._lastMeasuredIndex = index;\n }\n }\n }\n\n return this._cellSizeAndPositionData[index];\n }\n }, {\n key: 'getSizeAndPositionOfLastMeasuredCell',\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {\n offset: 0,\n size: 0\n };\n }\n\n /**\n * Total size of all cells being measured.\n * This value will be completely estimated initially.\n * As cells are measured, the estimate will be updated.\n */\n\n }, {\n key: 'getTotalSize',\n value: function getTotalSize() {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;\n return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;\n }\n\n /**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param containerSize Size (width or height) of the container viewport\n * @param currentOffset Container's current (x or y) offset\n * @param totalSize Total size (width or height) of all cells\n * @return Offset to use to ensure the specified cell is visible\n */\n\n }, {\n key: 'getUpdatedOffsetForIndex',\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === undefined ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n\n if (containerSize <= 0) {\n return 0;\n }\n\n var datum = this.getSizeAndPositionOfCell(targetIndex);\n var maxOffset = datum.offset;\n var minOffset = maxOffset - containerSize + datum.size;\n\n var idealOffset = void 0;\n\n switch (align) {\n case 'start':\n idealOffset = maxOffset;\n break;\n case 'end':\n idealOffset = minOffset;\n break;\n case 'center':\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n break;\n }\n\n var totalSize = this.getTotalSize();\n\n return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n }\n }, {\n key: 'getVisibleCellRange',\n value: function getVisibleCellRange(params) {\n var containerSize = params.containerSize,\n offset = params.offset;\n\n\n var totalSize = this.getTotalSize();\n\n if (totalSize === 0) {\n return {};\n }\n\n var maxOffset = offset + containerSize;\n var start = this._findNearestCell(offset);\n\n var datum = this.getSizeAndPositionOfCell(start);\n offset = datum.offset + datum.size;\n\n var stop = start;\n\n while (offset < maxOffset && stop < this._cellCount - 1) {\n stop++;\n\n offset += this.getSizeAndPositionOfCell(stop).size;\n }\n\n return {\n start: start,\n stop: stop\n };\n }\n\n /**\n * Clear all cached values for cells after the specified index.\n * This method should be called for any cell that has changed its size.\n * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.\n */\n\n }, {\n key: 'resetCell',\n value: function resetCell(index) {\n this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);\n }\n }, {\n key: '_binarySearch',\n value: function _binarySearch(high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var _currentOffset = this.getSizeAndPositionOfCell(middle).offset;\n\n if (_currentOffset === offset) {\n return middle;\n } else if (_currentOffset < offset) {\n low = middle + 1;\n } else if (_currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n }\n }, {\n key: '_exponentialSearch',\n value: function _exponentialSearch(index, offset) {\n var interval = 1;\n\n while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);\n }\n\n /**\n * Searches for the cell (index) nearest the specified offset.\n *\n * If no exact match is found the next lowest cell index will be returned.\n * This allows partially visible cells (with offsets just before/above the fold) to be visible.\n */\n\n }, {\n key: '_findNearestCell',\n value: function _findNearestCell(offset) {\n if (isNaN(offset)) {\n throw Error('Invalid offset ' + offset + ' specified');\n }\n\n // Our search algorithms find the nearest match at or below the specified offset.\n // So make sure the offset is at least 0 or no match will be found.\n offset = Math.max(0, offset);\n\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);\n\n if (lastMeasuredCellSizeAndPosition.offset >= offset) {\n // If we've already measured cells within this range just use a binary search as it's faster.\n return this._binarySearch(lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.\n // The overall complexity for this approach is O(log n).\n return this._exponentialSearch(lastMeasuredIndex, offset);\n }\n }\n }]);\n\n return CellSizeAndPositionManager;\n}();\n\nexport default CellSizeAndPositionManager;\nimport { bpfrpt_proptype_Alignment } from '../types';\nimport { bpfrpt_proptype_CellSizeGetter } from '../types';\nimport { bpfrpt_proptype_VisibleCellRange } from '../types';","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\n\nimport CellSizeAndPositionManager from './CellSizeAndPositionManager';\n\nimport { getMaxElementSize } from './maxElementSize.js';\n\n/**\n * Browsers have scroll offset limitations (eg Chrome stops scrolling at ~33.5M pixels where as Edge tops out at ~1.5M pixels).\n * After a certain position, the browser won't allow the user to scroll further (even via JavaScript scroll offset adjustments).\n * This util picks a lower ceiling for max size and artificially adjusts positions within to make it transparent for users.\n */\n\n/**\n * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.\n */\nvar ScalingCellSizeAndPositionManager = function () {\n function ScalingCellSizeAndPositionManager(_ref) {\n var _ref$maxScrollSize = _ref.maxScrollSize,\n maxScrollSize = _ref$maxScrollSize === undefined ? getMaxElementSize() : _ref$maxScrollSize,\n params = _objectWithoutProperties(_ref, ['maxScrollSize']);\n\n _classCallCheck(this, ScalingCellSizeAndPositionManager);\n\n // Favor composition over inheritance to simplify IE10 support\n this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params);\n this._maxScrollSize = maxScrollSize;\n }\n\n _createClass(ScalingCellSizeAndPositionManager, [{\n key: 'areOffsetsAdjusted',\n value: function areOffsetsAdjusted() {\n return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;\n }\n }, {\n key: 'configure',\n value: function configure(params) {\n this._cellSizeAndPositionManager.configure(params);\n }\n }, {\n key: 'getCellCount',\n value: function getCellCount() {\n return this._cellSizeAndPositionManager.getCellCount();\n }\n }, {\n key: 'getEstimatedCellSize',\n value: function getEstimatedCellSize() {\n return this._cellSizeAndPositionManager.getEstimatedCellSize();\n }\n }, {\n key: 'getLastMeasuredIndex',\n value: function getLastMeasuredIndex() {\n return this._cellSizeAndPositionManager.getLastMeasuredIndex();\n }\n\n /**\n * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.\n * The offset passed to this function is scaled (safe) as well.\n */\n\n }, {\n key: 'getOffsetAdjustment',\n value: function getOffsetAdjustment(_ref2) {\n var containerSize = _ref2.containerSize,\n offset = _ref2.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n\n return Math.round(offsetPercentage * (safeTotalSize - totalSize));\n }\n }, {\n key: 'getSizeAndPositionOfCell',\n value: function getSizeAndPositionOfCell(index) {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);\n }\n }, {\n key: 'getSizeAndPositionOfLastMeasuredCell',\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();\n }\n\n /** See CellSizeAndPositionManager#getTotalSize */\n\n }, {\n key: 'getTotalSize',\n value: function getTotalSize() {\n return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());\n }\n\n /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */\n\n }, {\n key: 'getUpdatedOffsetForIndex',\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === undefined ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n\n currentOffset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: currentOffset\n });\n\n var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: align,\n containerSize: containerSize,\n currentOffset: currentOffset,\n targetIndex: targetIndex\n });\n\n return this._offsetToSafeOffset({\n containerSize: containerSize,\n offset: offset\n });\n }\n\n /** See CellSizeAndPositionManager#getVisibleCellRange */\n\n }, {\n key: 'getVisibleCellRange',\n value: function getVisibleCellRange(_ref4) {\n var containerSize = _ref4.containerSize,\n offset = _ref4.offset;\n\n offset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: offset\n });\n\n return this._cellSizeAndPositionManager.getVisibleCellRange({\n containerSize: containerSize,\n offset: offset\n });\n }\n }, {\n key: 'resetCell',\n value: function resetCell(index) {\n this._cellSizeAndPositionManager.resetCell(index);\n }\n }, {\n key: '_getOffsetPercentage',\n value: function _getOffsetPercentage(_ref5) {\n var containerSize = _ref5.containerSize,\n offset = _ref5.offset,\n totalSize = _ref5.totalSize;\n\n return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);\n }\n }, {\n key: '_offsetToSafeOffset',\n value: function _offsetToSafeOffset(_ref6) {\n var containerSize = _ref6.containerSize,\n offset = _ref6.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: totalSize\n });\n\n return Math.round(offsetPercentage * (safeTotalSize - containerSize));\n }\n }\n }, {\n key: '_safeOffsetToOffset',\n value: function _safeOffsetToOffset(_ref7) {\n var containerSize = _ref7.containerSize,\n offset = _ref7.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n var safeTotalSize = this.getTotalSize();\n\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n\n return Math.round(offsetPercentage * (totalSize - containerSize));\n }\n }\n }]);\n\n return ScalingCellSizeAndPositionManager;\n}();\n\nexport default ScalingCellSizeAndPositionManager;\nimport { bpfrpt_proptype_Alignment } from '../types';\nimport { bpfrpt_proptype_CellSizeGetter } from '../types';\nimport { bpfrpt_proptype_VisibleCellRange } from '../types';","var DEFAULT_MAX_ELEMENT_SIZE = 1500000;\nvar CHROME_MAX_ELEMENT_SIZE = 1.67771e7;\n\nvar isBrowser = function isBrowser() {\n return typeof window !== 'undefined';\n};\n\nvar isChrome = function isChrome() {\n return !!window.chrome && !!window.chrome.webstore;\n};\n\nexport var getMaxElementSize = function getMaxElementSize() {\n if (isBrowser()) {\n if (isChrome()) {\n return CHROME_MAX_ELEMENT_SIZE;\n }\n }\n return DEFAULT_MAX_ELEMENT_SIZE;\n};","import _Object$keys from 'babel-runtime/core-js/object/keys';\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport default function createCallbackMemoizer() {\n var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var cachedIndices = {};\n\n return function (_ref) {\n var callback = _ref.callback,\n indices = _ref.indices;\n\n var keys = _Object$keys(indices);\n var allInitialized = !requireAllKeys || keys.every(function (key) {\n var value = indices[key];\n return Array.isArray(value) ? value.length > 0 : value >= 0;\n });\n var indexChanged = keys.length !== _Object$keys(cachedIndices).length || keys.some(function (key) {\n var cachedValue = cachedIndices[key];\n var value = indices[key];\n\n return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n });\n\n cachedIndices = indices;\n\n if (allInitialized && indexChanged) {\n callback(indices);\n }\n };\n}","\n\nexport var SCROLL_DIRECTION_BACKWARD = -1;\n\nexport var SCROLL_DIRECTION_FORWARD = 1;\n\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n return {\n overscanStartIndex: Math.max(0, startIndex),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex)\n };\n }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from './types';\nimport { bpfrpt_proptype_OverscanIndices } from './types';","\n\nimport ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager.js';\n\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n * This function also ensures that the scroll ofset isn't past the last column/row of cells.\n */\n\nexport default function updateScrollIndexHelper(_ref) {\n var cellSize = _ref.cellSize,\n cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,\n previousCellsCount = _ref.previousCellsCount,\n previousCellSize = _ref.previousCellSize,\n previousScrollToAlignment = _ref.previousScrollToAlignment,\n previousScrollToIndex = _ref.previousScrollToIndex,\n previousSize = _ref.previousSize,\n scrollOffset = _ref.scrollOffset,\n scrollToAlignment = _ref.scrollToAlignment,\n scrollToIndex = _ref.scrollToIndex,\n size = _ref.size,\n sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,\n updateScrollIndexCallback = _ref.updateScrollIndexCallback;\n\n var cellCount = cellSizeAndPositionManager.getCellCount();\n var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;\n var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize;\n\n // If we have a new scroll target OR if height/row-height has changed,\n // We should ensure that the scroll target is visible.\n if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback(scrollToIndex);\n\n // If we don't have a selected item but list size or number of children have decreased,\n // Make sure we aren't scrolled too far past the current content.\n } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {\n // We need to ensure that the current scroll offset is still within the collection's range.\n // To do this, we don't need to measure everything; CellMeasurer would perform poorly.\n // Just check to make sure we're still okay.\n // Only adjust the scroll position if we've scrolled below the last set of rows.\n if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {\n updateScrollIndexCallback(cellCount - 1);\n }\n }\n}\nimport { bpfrpt_proptype_Alignment } from '../types';\nimport { bpfrpt_proptype_CellSize } from '../types';","\n\n/**\n * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\n */\n\nexport default function defaultCellRangeRenderer(_ref) {\n var cellCache = _ref.cellCache,\n cellRenderer = _ref.cellRenderer,\n columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,\n columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n deferredMeasurementCache = _ref.deferredMeasurementCache,\n horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,\n isScrolling = _ref.isScrolling,\n isScrollingOptOut = _ref.isScrollingOptOut,\n parent = _ref.parent,\n rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex,\n styleCache = _ref.styleCache,\n verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,\n visibleColumnIndices = _ref.visibleColumnIndices,\n visibleRowIndices = _ref.visibleRowIndices;\n\n var renderedCells = [];\n\n // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).\n // User cannot scroll beyond these size limitations.\n // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.\n // We should never cache styles for compressed offsets though as this can lead to bugs.\n // See issue #576 for more.\n var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();\n\n var canCacheStyle = !isScrolling && !areOffsetsAdjusted;\n\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);\n\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);\n var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;\n var key = rowIndex + '-' + columnIndex;\n var style = void 0;\n\n // Cache style objects so shallow-compare doesn't re-render unnecessarily.\n if (canCacheStyle && styleCache[key]) {\n style = styleCache[key];\n } else {\n // In deferred mode, cells will be initially rendered before we know their size.\n // Don't interfere with CellMeasurer's measurements by setting an invalid size.\n if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {\n // Position not-yet-measured cells at top/left 0,0,\n // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.\n // Positioning them further to the right/bottom influences their measured size.\n style = {\n height: 'auto',\n left: 0,\n position: 'absolute',\n top: 0,\n width: 'auto'\n };\n } else {\n style = {\n height: rowDatum.size,\n left: columnDatum.offset + horizontalOffsetAdjustment,\n position: 'absolute',\n top: rowDatum.offset + verticalOffsetAdjustment,\n width: columnDatum.size\n };\n\n styleCache[key] = style;\n }\n }\n\n var cellRendererParams = {\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent,\n rowIndex: rowIndex,\n style: style\n };\n\n var renderedCell = void 0;\n\n // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling completes.\n // However if we are scaling scroll positions and sizes, we should also avoid caching.\n // This is because the offset changes slightly as scroll position changes and caching leads to stale values.\n // For more info refer to issue #395\n //\n // If isScrollingOptOut is specified, we always cache cells.\n // For more info refer to issue #1028\n if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {\n if (!cellCache[key]) {\n cellCache[key] = cellRenderer(cellRendererParams);\n }\n\n renderedCell = cellCache[key];\n\n // If the user is no longer scrolling, don't cache cells.\n // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.\n } else {\n renderedCell = cellRenderer(cellRendererParams);\n }\n\n if (renderedCell == null || renderedCell === false) {\n continue;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n warnAboutMissingStyle(parent, renderedCell);\n }\n\n renderedCells.push(renderedCell);\n }\n }\n\n return renderedCells;\n}\n\nfunction warnAboutMissingStyle(parent, renderedCell) {\n if (process.env.NODE_ENV !== 'production') {\n if (renderedCell) {\n // If the direct child is a CellMeasurer, then we should check its child\n // See issue #611\n if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {\n renderedCell = renderedCell.props.children;\n }\n\n if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {\n parent.__warnedAboutMissingStyle = true;\n\n console.warn('Rendered cell should include style property for positioning.');\n }\n }\n }\n}\nimport { bpfrpt_proptype_CellRangeRendererParams } from './types';","\n\n// Properly handle server-side rendering.\nvar win = void 0;\n\nif (typeof window !== 'undefined') {\n win = window;\n} else if (typeof self !== 'undefined') {\n win = self;\n} else {\n win = {};\n}\n\n// requestAnimationFrame() shim by Paul Irish\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\nvar request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {\n return win.setTimeout(callback, 1000 / 60);\n};\n\nvar cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {\n win.clearTimeout(id);\n};\n\nexport var raf = request;\nexport var caf = cancel;","import _Promise from 'babel-runtime/core-js/promise';\nimport { caf, raf } from './animationFrame';\n\nvar bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {\n id: PropTypes.number.isRequired\n};\n\n\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\n};\n\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start = void 0;\n // wait for end of processing current event handler, because event handler may be long\n _Promise.resolve().then(function () {\n start = Date.now();\n });\n\n var timeout = function timeout() {\n if (Date.now() - start >= delay) {\n callback.call();\n } else {\n frame.id = raf(timeout);\n }\n };\n\n var frame = {\n id: raf(timeout)\n };\n\n return frame;\n};\nimport PropTypes from 'prop-types';\nexport { bpfrpt_proptype_AnimationTimeoutId };","import _Object$assign from 'babel-runtime/core-js/object/assign';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport cn from 'classnames';\nimport calculateSizeAndPositionDataAndUpdateScrollOffset from './utils/calculateSizeAndPositionDataAndUpdateScrollOffset';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport defaultOverscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';\nimport updateScrollIndexHelper from './utils/updateScrollIndexHelper';\nimport defaultCellRangeRenderer from './defaultCellRangeRenderer';\nimport scrollbarSize from 'dom-helpers/util/scrollbarSize';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n\nvar renderNull = function renderNull() {\n return null;\n};\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nvar Grid = function (_React$PureComponent) {\n _inherits(Grid, _React$PureComponent);\n\n // Invokes onSectionRendered callback only when start/stop row or column indices change\n function Grid(props) {\n _classCallCheck(this, Grid);\n\n var _this = _possibleConstructorReturn(this, (Grid.__proto__ || _Object$getPrototypeOf(Grid)).call(this, props));\n\n _this._onGridRenderedMemoizer = createCallbackMemoizer();\n _this._onScrollMemoizer = createCallbackMemoizer(false);\n _this._deferredInvalidateColumnIndex = null;\n _this._deferredInvalidateRowIndex = null;\n _this._recomputeScrollLeftFlag = false;\n _this._recomputeScrollTopFlag = false;\n _this._horizontalScrollBarSize = 0;\n _this._verticalScrollBarSize = 0;\n _this._scrollbarPresenceChanged = false;\n _this._renderedColumnStartIndex = 0;\n _this._renderedColumnStopIndex = 0;\n _this._renderedRowStartIndex = 0;\n _this._renderedRowStopIndex = 0;\n _this._styleCache = {};\n _this._cellCache = {};\n\n _this._debounceScrollEndedCallback = function () {\n _this._disablePointerEventsTimeoutId = null;\n // isScrolling is used to determine if we reset styleCache\n _this.setState({\n isScrolling: false,\n needToResetStyleCache: false\n });\n };\n\n _this._invokeOnGridRenderedHelper = function () {\n var onSectionRendered = _this.props.onSectionRendered;\n\n\n _this._onGridRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n columnOverscanStartIndex: _this._columnStartIndex,\n columnOverscanStopIndex: _this._columnStopIndex,\n columnStartIndex: _this._renderedColumnStartIndex,\n columnStopIndex: _this._renderedColumnStopIndex,\n rowOverscanStartIndex: _this._rowStartIndex,\n rowOverscanStopIndex: _this._rowStopIndex,\n rowStartIndex: _this._renderedRowStartIndex,\n rowStopIndex: _this._renderedRowStopIndex\n }\n });\n };\n\n _this._setScrollingContainerRef = function (ref) {\n _this._scrollingContainer = ref;\n };\n\n _this._onScroll = function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target === _this._scrollingContainer) {\n _this.handleScrollEvent(event.target);\n }\n };\n\n var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.columnCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.columnWidth)(params);\n },\n estimatedCellSize: Grid._getEstimatedColumnSize(props)\n });\n var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.rowCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.rowHeight)(params);\n },\n estimatedCellSize: Grid._getEstimatedRowSize(props)\n });\n\n _this.state = {\n instanceProps: {\n columnSizeAndPositionManager: columnSizeAndPositionManager,\n rowSizeAndPositionManager: rowSizeAndPositionManager,\n\n prevColumnWidth: props.columnWidth,\n prevRowHeight: props.rowHeight,\n prevColumnCount: props.columnCount,\n prevRowCount: props.rowCount,\n prevIsScrolling: props.isScrolling === true,\n prevScrollToColumn: props.scrollToColumn,\n prevScrollToRow: props.scrollToRow,\n\n scrollbarSize: 0,\n scrollbarSizeMeasured: false\n },\n isScrolling: false,\n scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,\n scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,\n scrollLeft: 0,\n scrollTop: 0,\n scrollPositionChangeReason: null,\n\n needToResetStyleCache: false\n };\n\n if (props.scrollToRow > 0) {\n _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);\n }\n if (props.scrollToColumn > 0) {\n _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);\n }\n return _this;\n }\n\n /**\n * Gets offsets for a given cell and alignment.\n */\n\n\n _createClass(Grid, [{\n key: 'getOffsetForCell',\n value: function getOffsetForCell() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$alignment = _ref.alignment,\n alignment = _ref$alignment === undefined ? this.props.scrollToAlignment : _ref$alignment,\n _ref$columnIndex = _ref.columnIndex,\n columnIndex = _ref$columnIndex === undefined ? this.props.scrollToColumn : _ref$columnIndex,\n _ref$rowIndex = _ref.rowIndex,\n rowIndex = _ref$rowIndex === undefined ? this.props.scrollToRow : _ref$rowIndex;\n\n var offsetProps = _extends({}, this.props, {\n scrollToAlignment: alignment,\n scrollToColumn: columnIndex,\n scrollToRow: rowIndex\n });\n\n return {\n scrollLeft: this._getCalculatedScrollLeft(offsetProps),\n scrollTop: this._getCalculatedScrollTop(offsetProps)\n };\n }\n\n /**\n * Gets estimated total rows' height.\n */\n\n }, {\n key: 'getTotalRowsHeight',\n value: function getTotalRowsHeight() {\n return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();\n }\n\n /**\n * Gets estimated total columns' width.\n */\n\n }, {\n key: 'getTotalColumnsWidth',\n value: function getTotalColumnsWidth() {\n return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();\n }\n\n /**\n * This method handles a scroll event originating from an external scroll control.\n * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.\n */\n\n }, {\n key: 'handleScrollEvent',\n value: function handleScrollEvent(_ref2) {\n var _ref2$scrollLeft = _ref2.scrollLeft,\n scrollLeftParam = _ref2$scrollLeft === undefined ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTopParam = _ref2$scrollTop === undefined ? 0 : _ref2$scrollTop;\n\n // On iOS, we can arrive at negative offsets by swiping past the start.\n // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.\n if (scrollTopParam < 0) {\n return;\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n this._debounceScrollEnded();\n\n var _props = this.props,\n autoHeight = _props.autoHeight,\n autoWidth = _props.autoWidth,\n height = _props.height,\n width = _props.width;\n var instanceProps = this.state.instanceProps;\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n var scrollbarSize = instanceProps.scrollbarSize;\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);\n var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam);\n\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {\n // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.\n // Don't change direction for an axis unless scroll offset has changed.\n var _scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;\n var _scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;\n\n var newState = {\n isScrolling: true,\n scrollDirectionHorizontal: _scrollDirectionHorizontal,\n scrollDirectionVertical: _scrollDirectionVertical,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED\n };\n\n if (!autoHeight) {\n newState.scrollTop = scrollTop;\n }\n\n if (!autoWidth) {\n newState.scrollLeft = scrollLeft;\n }\n\n newState.needToResetStyleCache = false;\n this.setState(newState);\n }\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n\n /**\n * Invalidate Grid size and recompute visible cells.\n * This is a deferred wrapper for recomputeGridSize().\n * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.\n * This method is intended for advanced use-cases like CellMeasurer.\n */\n // @TODO (bvaughn) Add automated test coverage for this.\n\n }, {\n key: 'invalidateCellSizeAfterRender',\n value: function invalidateCellSizeAfterRender(_ref3) {\n var columnIndex = _ref3.columnIndex,\n rowIndex = _ref3.rowIndex;\n\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n\n /**\n * Pre-measure all columns and rows in a Grid.\n * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.\n * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).\n */\n\n }, {\n key: 'measureAllCells',\n value: function measureAllCells() {\n var _props2 = this.props,\n columnCount = _props2.columnCount,\n rowCount = _props2.rowCount;\n var instanceProps = this.state.instanceProps;\n\n instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);\n instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);\n }\n\n /**\n * Forced recompute of row heights and column widths.\n * This function should be called if dynamic column or row sizes have changed but nothing else has.\n * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.\n */\n\n }, {\n key: 'recomputeGridSize',\n value: function recomputeGridSize() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$columnIndex = _ref4.columnIndex,\n columnIndex = _ref4$columnIndex === undefined ? 0 : _ref4$columnIndex,\n _ref4$rowIndex = _ref4.rowIndex,\n rowIndex = _ref4$rowIndex === undefined ? 0 : _ref4$rowIndex;\n\n var _props3 = this.props,\n scrollToColumn = _props3.scrollToColumn,\n scrollToRow = _props3.scrollToRow;\n var instanceProps = this.state.instanceProps;\n\n\n instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);\n instanceProps.rowSizeAndPositionManager.resetCell(rowIndex);\n\n // Cell sizes may be determined by a function property.\n // In this case the cDU handler can't know if they changed.\n // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.\n this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);\n this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow);\n\n // Clear cell cache in case we are scrolling;\n // Invalid row heights likely mean invalid cached content as well.\n this._styleCache = {};\n this._cellCache = {};\n\n this.forceUpdate();\n }\n\n /**\n * Ensure column and row are visible.\n */\n\n }, {\n key: 'scrollToCell',\n value: function scrollToCell(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n var columnCount = this.props.columnCount;\n\n\n var props = this.props;\n\n // Don't adjust scroll offset for single-column grids (eg List, Table).\n // This can cause a funky scroll offset because of the vertical scrollbar width.\n if (columnCount > 1 && columnIndex !== undefined) {\n this._updateScrollLeftForScrollToColumn(_extends({}, props, {\n scrollToColumn: columnIndex\n }));\n }\n\n if (rowIndex !== undefined) {\n this._updateScrollTopForScrollToRow(_extends({}, props, {\n scrollToRow: rowIndex\n }));\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props4 = this.props,\n getScrollbarSize = _props4.getScrollbarSize,\n height = _props4.height,\n scrollLeft = _props4.scrollLeft,\n scrollToColumn = _props4.scrollToColumn,\n scrollTop = _props4.scrollTop,\n scrollToRow = _props4.scrollToRow,\n width = _props4.width;\n var instanceProps = this.state.instanceProps;\n\n // Reset initial offsets to be ignored in browser\n\n this._initialScrollTop = 0;\n this._initialScrollLeft = 0;\n\n // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n this._handleInvalidatedGridSize();\n\n // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n if (!instanceProps.scrollbarSizeMeasured) {\n this.setState(function (prevState) {\n var stateUpdate = _extends({}, prevState, { needToResetStyleCache: false });\n stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();\n stateUpdate.instanceProps.scrollbarSizeMeasured = true;\n return stateUpdate;\n });\n }\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n\n // refs don't work in `react-test-renderer`\n if (this._scrollingContainer) {\n // setting the ref's scrollLeft and scrollTop.\n // Somehow in MultiGrid the main grid doesn't trigger a update on mount.\n if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {\n this._scrollingContainer.scrollLeft = this.state.scrollLeft;\n }\n if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {\n this._scrollingContainer.scrollTop = this.state.scrollTop;\n }\n }\n\n // Don't update scroll offset if the size is 0; we don't render any cells in this case.\n // Setting a state may cause us to later thing we've updated the offce when we haven't.\n var sizeIsBiggerThanZero = height > 0 && width > 0;\n if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollLeftForScrollToColumn();\n }\n if (scrollToRow >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollTopForScrollToRow();\n }\n\n // Update onRowsRendered callback\n this._invokeOnGridRenderedHelper();\n\n // Initialize onScroll callback\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),\n totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()\n });\n\n this._maybeCallOnScrollbarPresenceChange();\n }\n\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) New scroll-to-cell props have been set\n */\n\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _props5 = this.props,\n autoHeight = _props5.autoHeight,\n autoWidth = _props5.autoWidth,\n columnCount = _props5.columnCount,\n height = _props5.height,\n rowCount = _props5.rowCount,\n scrollToAlignment = _props5.scrollToAlignment,\n scrollToColumn = _props5.scrollToColumn,\n scrollToRow = _props5.scrollToRow,\n width = _props5.width;\n var _state = this.state,\n scrollLeft = _state.scrollLeft,\n scrollPositionChangeReason = _state.scrollPositionChangeReason,\n scrollTop = _state.scrollTop,\n instanceProps = _state.instanceProps;\n // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n\n this._handleInvalidatedGridSize();\n\n // Handle edge case where column or row count has only just increased over 0.\n // In this case we may have to restore a previously-specified scroll offset.\n // For more info see bvaughn/react-virtualized/issues/218\n var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0;\n\n // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).\n // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.\n if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n }\n\n // Special case where the previous size was 0:\n // In this case we don't show any windowed cells at all.\n // So we should always recalculate offset afterwards.\n var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0;\n\n // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it\n // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?\n if (this._recomputeScrollLeftFlag) {\n this._recomputeScrollLeftFlag = false;\n this._updateScrollLeftForScrollToColumn(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n previousCellsCount: prevProps.columnCount,\n previousCellSize: prevProps.columnWidth,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToColumn,\n previousSize: prevProps.width,\n scrollOffset: scrollLeft,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToColumn,\n size: width,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollLeftForScrollToColumn(_this2.props);\n }\n });\n }\n\n if (this._recomputeScrollTopFlag) {\n this._recomputeScrollTopFlag = false;\n this._updateScrollTopForScrollToRow(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n previousCellsCount: prevProps.rowCount,\n previousCellSize: prevProps.rowHeight,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToRow,\n previousSize: prevProps.height,\n scrollOffset: scrollTop,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToRow,\n size: height,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollTopForScrollToRow(_this2.props);\n }\n });\n }\n\n // Update onRowsRendered callback if start/stop indices have changed\n this._invokeOnGridRenderedHelper();\n\n // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners\n if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n\n this._maybeCallOnScrollbarPresenceChange();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n\n /**\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n\n }, {\n key: 'render',\n value: function render() {\n var _props6 = this.props,\n autoContainerWidth = _props6.autoContainerWidth,\n autoHeight = _props6.autoHeight,\n autoWidth = _props6.autoWidth,\n className = _props6.className,\n containerProps = _props6.containerProps,\n containerRole = _props6.containerRole,\n containerStyle = _props6.containerStyle,\n height = _props6.height,\n id = _props6.id,\n noContentRenderer = _props6.noContentRenderer,\n role = _props6.role,\n style = _props6.style,\n tabIndex = _props6.tabIndex,\n width = _props6.width;\n var _state2 = this.state,\n instanceProps = _state2.instanceProps,\n needToResetStyleCache = _state2.needToResetStyleCache;\n\n\n var isScrolling = this._isScrolling();\n\n var gridStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n width: autoWidth ? 'auto' : width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n };\n\n if (needToResetStyleCache) {\n this._styleCache = {};\n }\n\n // calculate _styleCache here\n // if state.isScrolling (not from _isScrolling) then reset\n if (!this.state.isScrolling) {\n this._resetStyleCache();\n }\n\n // calculate children to render here\n this._calculateChildrenToRender(this.props, this.state);\n\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n\n // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n\n if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {\n this._horizontalScrollBarSize = horizontalScrollBarSize;\n this._verticalScrollBarSize = verticalScrollBarSize;\n this._scrollbarPresenceChanged = true;\n }\n\n // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n\n var childrenToDisplay = this._childrenToDisplay;\n\n var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;\n\n return React.createElement(\n 'div',\n _extends({\n ref: this._setScrollingContainerRef\n }, containerProps, {\n 'aria-label': this.props['aria-label'],\n 'aria-readonly': this.props['aria-readonly'],\n className: cn('ReactVirtualized__Grid', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _extends({}, gridStyle, style),\n tabIndex: tabIndex }),\n childrenToDisplay.length > 0 && React.createElement(\n 'div',\n {\n className: 'ReactVirtualized__Grid__innerScrollContainer',\n role: containerRole,\n style: _extends({\n width: autoContainerWidth ? 'auto' : totalColumnsWidth,\n height: totalRowsHeight,\n maxWidth: totalColumnsWidth,\n maxHeight: totalRowsHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n }, containerStyle) },\n childrenToDisplay\n ),\n showNoContentRenderer && noContentRenderer()\n );\n }\n\n /* ---------------------------- Helper methods ---------------------------- */\n\n }, {\n key: '_calculateChildrenToRender',\n value: function _calculateChildrenToRender() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n var cellRenderer = props.cellRenderer,\n cellRangeRenderer = props.cellRangeRenderer,\n columnCount = props.columnCount,\n deferredMeasurementCache = props.deferredMeasurementCache,\n height = props.height,\n overscanColumnCount = props.overscanColumnCount,\n overscanIndicesGetter = props.overscanIndicesGetter,\n overscanRowCount = props.overscanRowCount,\n rowCount = props.rowCount,\n width = props.width,\n isScrollingOptOut = props.isScrollingOptOut;\n var scrollDirectionHorizontal = state.scrollDirectionHorizontal,\n scrollDirectionVertical = state.scrollDirectionVertical,\n instanceProps = state.instanceProps;\n\n\n var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;\n var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;\n\n var isScrolling = this._isScrolling(props, state);\n\n this._childrenToDisplay = [];\n\n // Render only enough columns and rows to cover the visible area of the grid.\n if (height > 0 && width > 0) {\n var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({\n containerSize: width,\n offset: scrollLeft\n });\n var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({\n containerSize: height,\n offset: scrollTop\n });\n\n var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({\n containerSize: width,\n offset: scrollLeft\n });\n var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({\n containerSize: height,\n offset: scrollTop\n });\n\n // Store for _invokeOnGridRenderedHelper()\n this._renderedColumnStartIndex = visibleColumnIndices.start;\n this._renderedColumnStopIndex = visibleColumnIndices.stop;\n this._renderedRowStartIndex = visibleRowIndices.start;\n this._renderedRowStopIndex = visibleRowIndices.stop;\n\n var overscanColumnIndices = overscanIndicesGetter({\n direction: 'horizontal',\n cellCount: columnCount,\n overscanCellsCount: overscanColumnCount,\n scrollDirection: scrollDirectionHorizontal,\n startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,\n stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1\n });\n\n var overscanRowIndices = overscanIndicesGetter({\n direction: 'vertical',\n cellCount: rowCount,\n overscanCellsCount: overscanRowCount,\n scrollDirection: scrollDirectionVertical,\n startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,\n stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1\n });\n\n // Store for _invokeOnGridRenderedHelper()\n var columnStartIndex = overscanColumnIndices.overscanStartIndex;\n var columnStopIndex = overscanColumnIndices.overscanStopIndex;\n var rowStartIndex = overscanRowIndices.overscanStartIndex;\n var rowStopIndex = overscanRowIndices.overscanStopIndex;\n\n // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.\n if (deferredMeasurementCache) {\n // If rows have a dynamic height, scan the rows we are about to render.\n // If any have not yet been measured, then we need to render all columns initially,\n // Because the height of the row is equal to the tallest cell within that row,\n // (And so we can't know the height without measuring all column-cells first).\n if (!deferredMeasurementCache.hasFixedHeight()) {\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n if (!deferredMeasurementCache.has(rowIndex, 0)) {\n columnStartIndex = 0;\n columnStopIndex = columnCount - 1;\n break;\n }\n }\n }\n\n // If columns have a dynamic width, scan the columns we are about to render.\n // If any have not yet been measured, then we need to render all rows initially,\n // Because the width of the column is equal to the widest cell within that column,\n // (And so we can't know the width without measuring all row-cells first).\n if (!deferredMeasurementCache.hasFixedWidth()) {\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n if (!deferredMeasurementCache.has(0, columnIndex)) {\n rowStartIndex = 0;\n rowStopIndex = rowCount - 1;\n break;\n }\n }\n }\n }\n\n this._childrenToDisplay = cellRangeRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n columnStartIndex: columnStartIndex,\n columnStopIndex: columnStopIndex,\n deferredMeasurementCache: deferredMeasurementCache,\n horizontalOffsetAdjustment: horizontalOffsetAdjustment,\n isScrolling: isScrolling,\n isScrollingOptOut: isScrollingOptOut,\n parent: this,\n rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n rowStartIndex: rowStartIndex,\n rowStopIndex: rowStopIndex,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n styleCache: this._styleCache,\n verticalOffsetAdjustment: verticalOffsetAdjustment,\n visibleColumnIndices: visibleColumnIndices,\n visibleRowIndices: visibleRowIndices\n });\n\n // update the indices\n this._columnStartIndex = columnStartIndex;\n this._columnStopIndex = columnStopIndex;\n this._rowStartIndex = rowStartIndex;\n this._rowStopIndex = rowStopIndex;\n }\n }\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Grid.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n\n }, {\n key: '_debounceScrollEnded',\n value: function _debounceScrollEnded() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);\n }\n }, {\n key: '_handleInvalidatedGridSize',\n\n\n /**\n * Check for batched CellMeasurer size invalidations.\n * This will occur the first time one or more previously unmeasured cells are rendered.\n */\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n\n this.recomputeGridSize({ columnIndex: columnIndex, rowIndex: rowIndex });\n }\n }\n }, {\n key: '_invokeOnScrollMemoizer',\n value: function _invokeOnScrollMemoizer(_ref6) {\n var _this3 = this;\n\n var scrollLeft = _ref6.scrollLeft,\n scrollTop = _ref6.scrollTop,\n totalColumnsWidth = _ref6.totalColumnsWidth,\n totalRowsHeight = _ref6.totalRowsHeight;\n\n this._onScrollMemoizer({\n callback: function callback(_ref7) {\n var scrollLeft = _ref7.scrollLeft,\n scrollTop = _ref7.scrollTop;\n var _props7 = _this3.props,\n height = _props7.height,\n onScroll = _props7.onScroll,\n width = _props7.width;\n\n\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalRowsHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalColumnsWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: '_isScrolling',\n value: function _isScrolling() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n // If isScrolling is defined in props, use it to override the value in state\n // This is a performance optimization for WindowScroller + Grid\n return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);\n }\n }, {\n key: '_maybeCallOnScrollbarPresenceChange',\n value: function _maybeCallOnScrollbarPresenceChange() {\n if (this._scrollbarPresenceChanged) {\n var _onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;\n\n\n this._scrollbarPresenceChanged = false;\n\n _onScrollbarPresenceChange({\n horizontal: this._horizontalScrollBarSize > 0,\n size: this.state.instanceProps.scrollbarSize,\n vertical: this._verticalScrollBarSize > 0\n });\n }\n }\n }, {\n key: 'scrollToPosition',\n\n\n /**\n * Scroll to the specified offset(s).\n * Useful for animating position changes.\n */\n value: function scrollToPosition(_ref8) {\n var scrollLeft = _ref8.scrollLeft,\n scrollTop = _ref8.scrollTop;\n\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: '_getCalculatedScrollLeft',\n value: function _getCalculatedScrollLeft() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n return Grid._getCalculatedScrollLeft(props, state);\n }\n }, {\n key: '_updateScrollLeftForScrollToColumn',\n value: function _updateScrollLeftForScrollToColumn() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: '_getCalculatedScrollTop',\n value: function _getCalculatedScrollTop() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n return Grid._getCalculatedScrollTop(props, state);\n }\n }, {\n key: '_resetStyleCache',\n value: function _resetStyleCache() {\n var styleCache = this._styleCache;\n var cellCache = this._cellCache;\n var isScrollingOptOut = this.props.isScrollingOptOut;\n\n // Reset cell and style caches once scrolling stops.\n // This makes Grid simpler to use (since cells commonly change).\n // And it keeps the caches from growing too large.\n // Performance is most sensitive when a user is scrolling.\n // Don't clear visible cells from cellCache if isScrollingOptOut is specified.\n // This keeps the cellCache to a resonable size.\n\n this._cellCache = {};\n this._styleCache = {};\n\n // Copy over the visible cell styles so avoid unnecessary re-render.\n for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {\n for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {\n var key = rowIndex + '-' + columnIndex;\n this._styleCache[key] = styleCache[key];\n\n if (isScrollingOptOut) {\n this._cellCache[key] = cellCache[key];\n }\n }\n }\n }\n }, {\n key: '_updateScrollTopForScrollToRow',\n value: function _updateScrollTopForScrollToRow() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var newState = {};\n\n if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {\n newState.scrollLeft = 0;\n newState.scrollTop = 0;\n\n // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified\n // scrollTo{Column,Row} should override scroll{Left,Top}\n } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {\n _Object$assign(newState, Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: nextProps.scrollLeft,\n scrollTop: nextProps.scrollTop\n }));\n }\n\n var instanceProps = prevState.instanceProps;\n\n // Initially we should not clearStyleCache\n\n newState.needToResetStyleCache = false;\n if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {\n // Reset cache. set it to {} in render\n newState.needToResetStyleCache = true;\n }\n\n instanceProps.columnSizeAndPositionManager.configure({\n cellCount: nextProps.columnCount,\n estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)\n });\n\n instanceProps.rowSizeAndPositionManager.configure({\n cellCount: nextProps.rowCount,\n estimatedCellSize: Grid._getEstimatedRowSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)\n });\n\n if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {\n instanceProps.prevColumnCount = 0;\n instanceProps.prevRowCount = 0;\n }\n\n // If scrolling is controlled outside this component, clear cache when scrolling stops\n if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {\n _Object$assign(newState, {\n isScrolling: false\n });\n }\n\n var maybeStateA = void 0;\n var maybeStateB = void 0;\n\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevColumnCount,\n cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.columnSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.columnCount,\n nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,\n nextScrollToIndex: nextProps.scrollToColumn,\n scrollToIndex: instanceProps.prevScrollToColumn,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);\n }\n });\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevRowCount,\n cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.rowSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.rowCount,\n nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,\n nextScrollToIndex: nextProps.scrollToRow,\n scrollToIndex: instanceProps.prevScrollToRow,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);\n }\n });\n\n instanceProps.prevColumnCount = nextProps.columnCount;\n instanceProps.prevColumnWidth = nextProps.columnWidth;\n instanceProps.prevIsScrolling = nextProps.isScrolling === true;\n instanceProps.prevRowCount = nextProps.rowCount;\n instanceProps.prevRowHeight = nextProps.rowHeight;\n instanceProps.prevScrollToColumn = nextProps.scrollToColumn;\n instanceProps.prevScrollToRow = nextProps.scrollToRow;\n\n // getting scrollBarSize (moved from componentWillMount)\n instanceProps.scrollbarSize = nextProps.getScrollbarSize();\n if (instanceProps.scrollbarSize === undefined) {\n instanceProps.scrollbarSizeMeasured = false;\n instanceProps.scrollbarSize = 0;\n } else {\n instanceProps.scrollbarSizeMeasured = true;\n }\n\n newState.instanceProps = instanceProps;\n\n return _extends({}, newState, maybeStateA, maybeStateB);\n }\n }, {\n key: '_getEstimatedColumnSize',\n value: function _getEstimatedColumnSize(props) {\n return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;\n }\n }, {\n key: '_getEstimatedRowSize',\n value: function _getEstimatedRowSize(props) {\n return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;\n }\n }, {\n key: '_getScrollToPositionStateUpdate',\n\n\n /**\n * Get the updated state after scrolling to\n * scrollLeft and scrollTop\n */\n value: function _getScrollToPositionStateUpdate(_ref9) {\n var prevState = _ref9.prevState,\n scrollLeft = _ref9.scrollLeft,\n scrollTop = _ref9.scrollTop;\n\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0) {\n newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n newState.scrollLeft = scrollLeft;\n }\n\n if (typeof scrollTop === 'number' && scrollTop >= 0) {\n newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n newState.scrollTop = scrollTop;\n }\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n return newState;\n }\n return null;\n }\n }, {\n key: '_wrapSizeGetter',\n value: function _wrapSizeGetter(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n }\n }, {\n key: '_getCalculatedScrollLeft',\n value: function _getCalculatedScrollLeft(nextProps, prevState) {\n var columnCount = nextProps.columnCount,\n height = nextProps.height,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToColumn = nextProps.scrollToColumn,\n width = nextProps.width;\n var scrollLeft = prevState.scrollLeft,\n instanceProps = prevState.instanceProps;\n\n\n if (columnCount > 0) {\n var finalColumn = columnCount - 1;\n var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n\n return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: width - scrollBarSize,\n currentOffset: scrollLeft,\n targetIndex: targetIndex\n });\n }\n return 0;\n }\n }, {\n key: '_getScrollLeftForScrollToColumnStateUpdate',\n value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {\n var scrollLeft = prevState.scrollLeft;\n\n var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);\n\n if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: calculatedScrollLeft,\n scrollTop: -1\n });\n }\n return null;\n }\n }, {\n key: '_getCalculatedScrollTop',\n value: function _getCalculatedScrollTop(nextProps, prevState) {\n var height = nextProps.height,\n rowCount = nextProps.rowCount,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToRow = nextProps.scrollToRow,\n width = nextProps.width;\n var scrollTop = prevState.scrollTop,\n instanceProps = prevState.instanceProps;\n\n\n if (rowCount > 0) {\n var finalRow = rowCount - 1;\n var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n\n return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: height - scrollBarSize,\n currentOffset: scrollTop,\n targetIndex: targetIndex\n });\n }\n return 0;\n }\n }, {\n key: '_getScrollTopForScrollToRowStateUpdate',\n value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {\n var scrollTop = prevState.scrollTop;\n\n var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);\n\n if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: -1,\n scrollTop: calculatedScrollTop\n });\n }\n return null;\n }\n }]);\n\n return Grid;\n}(React.PureComponent);\n\nGrid.defaultProps = {\n 'aria-label': 'grid',\n 'aria-readonly': true,\n autoContainerWidth: false,\n autoHeight: false,\n autoWidth: false,\n cellRangeRenderer: defaultCellRangeRenderer,\n containerRole: 'rowgroup',\n containerStyle: {},\n estimatedColumnSize: 100,\n estimatedRowSize: 30,\n getScrollbarSize: scrollbarSize,\n noContentRenderer: renderNull,\n onScroll: function onScroll() {},\n onScrollbarPresenceChange: function onScrollbarPresenceChange() {},\n onSectionRendered: function onSectionRendered() {},\n overscanColumnCount: 0,\n overscanIndicesGetter: defaultOverscanIndicesGetter,\n overscanRowCount: 10,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n scrollToAlignment: 'auto',\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n tabIndex: 0,\n isScrollingOptOut: false\n};\nGrid.propTypes = process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": PropTypes.string.isRequired,\n \"aria-readonly\": PropTypes.bool,\n\n\n /**\n * Set the width of the inner scrollable container to 'auto'.\n * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.\n */\n autoContainerWidth: PropTypes.bool.isRequired,\n\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool.isRequired,\n\n\n /**\n * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n autoWidth: PropTypes.bool.isRequired,\n\n\n /** Responsible for rendering a cell given an row and column index. */\n cellRenderer: function cellRenderer() {\n return (typeof bpfrpt_proptype_CellRenderer === 'function' ? bpfrpt_proptype_CellRenderer.isRequired ? bpfrpt_proptype_CellRenderer.isRequired : bpfrpt_proptype_CellRenderer : PropTypes.shape(bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);\n },\n\n\n /** Responsible for rendering a group of cells given their index ranges. */\n cellRangeRenderer: function cellRangeRenderer() {\n return (typeof bpfrpt_proptype_CellRangeRenderer === 'function' ? bpfrpt_proptype_CellRangeRenderer.isRequired ? bpfrpt_proptype_CellRangeRenderer.isRequired : bpfrpt_proptype_CellRangeRenderer : PropTypes.shape(bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);\n },\n\n\n /** Optional custom CSS class name to attach to root Grid element. */\n className: PropTypes.string,\n\n\n /** Number of columns in grid. */\n columnCount: PropTypes.number.isRequired,\n\n\n /** Either a fixed column width (number) or a function that returns the width of a column given its index. */\n columnWidth: function columnWidth() {\n return (typeof bpfrpt_proptype_CellSize === 'function' ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n\n /** Unfiltered props for the Grid container. */\n containerProps: PropTypes.object,\n\n\n /** ARIA role for the cell-container. */\n containerRole: PropTypes.string.isRequired,\n\n\n /** Optional inline style applied to inner cell-container */\n containerStyle: PropTypes.object.isRequired,\n\n\n /**\n * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.\n * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.\n */\n deferredMeasurementCache: PropTypes.object,\n\n\n /**\n * Used to estimate the total width of a Grid before all of its columns have actually been measured.\n * The estimated total width is adjusted as columns are rendered.\n */\n estimatedColumnSize: PropTypes.number.isRequired,\n\n\n /**\n * Used to estimate the total height of a Grid before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: PropTypes.number.isRequired,\n\n\n /** Exposed for testing purposes only. */\n getScrollbarSize: PropTypes.func.isRequired,\n\n\n /** Height of Grid; this property determines the number of visible (vs virtualized) rows. */\n height: PropTypes.number.isRequired,\n\n\n /** Optional custom id to attach to root Grid element. */\n id: PropTypes.string,\n\n\n /**\n * Override internal is-scrolling state tracking.\n * This property is primarily intended for use with the WindowScroller component.\n */\n isScrolling: PropTypes.bool,\n\n\n /**\n * Opt-out of isScrolling param passed to cellRangeRenderer.\n * To avoid the extra render when scroll stops.\n */\n isScrollingOptOut: PropTypes.bool.isRequired,\n\n\n /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0. */\n noContentRenderer: function noContentRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === 'function' ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n onScroll: PropTypes.func.isRequired,\n\n\n /**\n * Called whenever a horizontal or vertical scrollbar is added or removed.\n * This prop is not intended for end-user use;\n * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.\n */\n onScrollbarPresenceChange: PropTypes.func.isRequired,\n\n\n /** Callback invoked with information about the section of the Grid that was just rendered. */\n onSectionRendered: PropTypes.func.isRequired,\n\n\n /**\n * Number of columns to render before/after the visible section of the grid.\n * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanColumnCount: PropTypes.number.isRequired,\n\n\n /**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n overscanIndicesGetter: function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === 'function' ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n\n\n /**\n * Number of rows to render above/below the visible section of the grid.\n * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanRowCount: PropTypes.number.isRequired,\n\n\n /** ARIA role for the grid element. */\n role: PropTypes.string.isRequired,\n\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * Should implement the following interface: ({ index: number }): number\n */\n rowHeight: function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === 'function' ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n\n /** Number of rows in grid. */\n rowCount: PropTypes.number.isRequired,\n\n\n /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n scrollingResetTimeInterval: PropTypes.number.isRequired,\n\n\n /** Horizontal offset. */\n scrollLeft: PropTypes.number,\n\n\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n scrollToAlignment: function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === 'function' ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n\n /** Column index to ensure visible (by forcefully scrolling if necessary) */\n scrollToColumn: PropTypes.number.isRequired,\n\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToRow: PropTypes.number.isRequired,\n\n\n /** Optional inline style */\n style: PropTypes.object.isRequired,\n\n\n /** Tab index for focus */\n tabIndex: PropTypes.number,\n\n\n /** Width of Grid; this property determines the number of visible (vs virtualized) columns. */\n width: PropTypes.number.isRequired\n};\n\n\npolyfill(Grid);\nexport default Grid;\nimport { bpfrpt_proptype_CellRenderer } from './types';\nimport { bpfrpt_proptype_CellRangeRenderer } from './types';\nimport { bpfrpt_proptype_CellPosition } from './types';\nimport { bpfrpt_proptype_CellSize } from './types';\nimport { bpfrpt_proptype_CellSizeGetter } from './types';\nimport { bpfrpt_proptype_NoContentRenderer } from './types';\nimport { bpfrpt_proptype_Scroll } from './types';\nimport { bpfrpt_proptype_ScrollbarPresenceChange } from './types';\nimport { bpfrpt_proptype_RenderedSection } from './types';\nimport { bpfrpt_proptype_OverscanIndicesGetter } from './types';\nimport { bpfrpt_proptype_Alignment } from './types';\nimport { bpfrpt_proptype_CellCache } from './types';\nimport { bpfrpt_proptype_StyleCache } from './types';\nimport { bpfrpt_proptype_AnimationTimeoutId } from '../utils/requestAnimationTimeout';\nimport PropTypes from 'prop-types';","\n\nexport var SCROLL_DIRECTION_BACKWARD = -1;\n\nexport var SCROLL_DIRECTION_FORWARD = 1;\n\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n // Make sure we render at least 1 cell extra before and after (except near boundaries)\n // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases\n // For more info see issues #625\n overscanCellsCount = Math.max(1, overscanCellsCount);\n\n if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n return {\n overscanStartIndex: Math.max(0, startIndex - 1),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)\n };\n }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from './types';\nimport { bpfrpt_proptype_OverscanIndices } from './types';","var bpfrpt_proptype_ScrollIndices = process.env.NODE_ENV === 'production' ? null : {\n scrollToColumn: PropTypes.number.isRequired,\n scrollToRow: PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_ScrollIndices };","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\n\n/**\n * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.\n */\n\nvar ArrowKeyStepper = function (_React$PureComponent) {\n _inherits(ArrowKeyStepper, _React$PureComponent);\n\n function ArrowKeyStepper() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ArrowKeyStepper);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ArrowKeyStepper.__proto__ || _Object$getPrototypeOf(ArrowKeyStepper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n scrollToColumn: 0,\n scrollToRow: 0\n }, _this._columnStartIndex = 0, _this._columnStopIndex = 0, _this._rowStartIndex = 0, _this._rowStopIndex = 0, _this._onKeyDown = function (event) {\n var _this$props = _this.props,\n columnCount = _this$props.columnCount,\n disabled = _this$props.disabled,\n mode = _this$props.mode,\n rowCount = _this$props.rowCount;\n\n\n if (disabled) {\n return;\n }\n\n var _this$_getScrollState = _this._getScrollState(),\n scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,\n scrollToRowPrevious = _this$_getScrollState.scrollToRow;\n\n var _this$_getScrollState2 = _this._getScrollState(),\n scrollToColumn = _this$_getScrollState2.scrollToColumn,\n scrollToRow = _this$_getScrollState2.scrollToRow;\n\n // The above cases all prevent default event event behavior.\n // This is to keep the grid from scrolling after the snap-to update.\n\n\n switch (event.key) {\n case 'ArrowDown':\n scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);\n break;\n case 'ArrowLeft':\n scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);\n break;\n case 'ArrowRight':\n scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);\n break;\n case 'ArrowUp':\n scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);\n break;\n }\n\n if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {\n event.preventDefault();\n\n _this._updateScrollState({ scrollToColumn: scrollToColumn, scrollToRow: scrollToRow });\n }\n }, _this._onSectionRendered = function (_ref2) {\n var columnStartIndex = _ref2.columnStartIndex,\n columnStopIndex = _ref2.columnStopIndex,\n rowStartIndex = _ref2.rowStartIndex,\n rowStopIndex = _ref2.rowStopIndex;\n\n _this._columnStartIndex = columnStartIndex;\n _this._columnStopIndex = columnStopIndex;\n _this._rowStartIndex = rowStartIndex;\n _this._rowStopIndex = rowStopIndex;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ArrowKeyStepper, [{\n key: 'setScrollIndexes',\n value: function setScrollIndexes(_ref3) {\n var scrollToColumn = _ref3.scrollToColumn,\n scrollToRow = _ref3.scrollToRow;\n\n this.setState({\n scrollToRow: scrollToRow,\n scrollToColumn: scrollToColumn\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n children = _props.children;\n\n var _getScrollState2 = this._getScrollState(),\n scrollToColumn = _getScrollState2.scrollToColumn,\n scrollToRow = _getScrollState2.scrollToRow;\n\n return React.createElement(\n 'div',\n { className: className, onKeyDown: this._onKeyDown },\n children({\n onSectionRendered: this._onSectionRendered,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n })\n );\n }\n }, {\n key: '_getScrollState',\n value: function _getScrollState() {\n return this.props.isControlled ? this.props : this.state;\n }\n }, {\n key: '_updateScrollState',\n value: function _updateScrollState(_ref4) {\n var scrollToColumn = _ref4.scrollToColumn,\n scrollToRow = _ref4.scrollToRow;\n var _props2 = this.props,\n isControlled = _props2.isControlled,\n onScrollToChange = _props2.onScrollToChange;\n\n\n if (typeof onScrollToChange === 'function') {\n onScrollToChange({ scrollToColumn: scrollToColumn, scrollToRow: scrollToRow });\n }\n\n if (!isControlled) {\n this.setState({ scrollToColumn: scrollToColumn, scrollToRow: scrollToRow });\n }\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.isControlled) {\n return null;\n }\n\n if (nextProps.scrollToColumn !== prevState.scrollToColumn || nextProps.scrollToRow !== prevState.scrollToRow) {\n return {\n scrollToColumn: nextProps.scrollToColumn,\n scrollToRow: nextProps.scrollToRow\n };\n }\n\n return null;\n }\n }]);\n\n return ArrowKeyStepper;\n}(React.PureComponent);\n\nArrowKeyStepper.defaultProps = {\n disabled: false,\n isControlled: false,\n mode: 'edges',\n scrollToColumn: 0,\n scrollToRow: 0\n};\nArrowKeyStepper.propTypes = process.env.NODE_ENV === 'production' ? null : {\n children: PropTypes.func.isRequired,\n className: PropTypes.string,\n columnCount: PropTypes.number.isRequired,\n disabled: PropTypes.bool.isRequired,\n isControlled: PropTypes.bool.isRequired,\n mode: PropTypes.oneOf(['cells', 'edges']).isRequired,\n onScrollToChange: PropTypes.func,\n rowCount: PropTypes.number.isRequired,\n scrollToColumn: PropTypes.number.isRequired,\n scrollToRow: PropTypes.number.isRequired\n};\n\n\npolyfill(ArrowKeyStepper);\n\nexport default ArrowKeyStepper;\nimport { bpfrpt_proptype_RenderedSection } from '../Grid';\nimport { bpfrpt_proptype_ScrollIndices } from './types';\nimport PropTypes from 'prop-types';","/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n **/\n\nexport default function createDetectElementResize(nonce) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n if (typeof window !== 'undefined') {\n _window = window;\n } else if (typeof self !== 'undefined') {\n _window = self;\n } else {\n _window = global;\n }\n\n var attachEvent = typeof document !== 'undefined' && document.attachEvent;\n\n if (!attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n }\n\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('detectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n\n style.id = 'detectElementResize';\n style.type = 'text/css';\n\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n };\n\n var addResizeListener = function addResizeListener(element, fn) {\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n var elementStyle = _window.getComputedStyle(element);\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' + '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n\n var removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport createDetectElementResize from '../vendor/detectElementResize';\n\nvar AutoSizer = function (_React$PureComponent) {\n _inherits(AutoSizer, _React$PureComponent);\n\n function AutoSizer() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, AutoSizer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AutoSizer.__proto__ || _Object$getPrototypeOf(AutoSizer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n }, _this._onResize = function () {\n var _this$props = _this.props,\n disableHeight = _this$props.disableHeight,\n disableWidth = _this$props.disableWidth,\n onResize = _this$props.onResize;\n\n\n if (_this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n var _height = _this._parentNode.offsetHeight || 0;\n var _width = _this._parentNode.offsetWidth || 0;\n\n var _style = window.getComputedStyle(_this._parentNode) || {};\n var paddingLeft = parseInt(_style.paddingLeft, 10) || 0;\n var paddingRight = parseInt(_style.paddingRight, 10) || 0;\n var paddingTop = parseInt(_style.paddingTop, 10) || 0;\n var paddingBottom = parseInt(_style.paddingBottom, 10) || 0;\n\n var newHeight = _height - paddingTop - paddingBottom;\n var newWidth = _width - paddingLeft - paddingRight;\n\n if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n _this.setState({\n height: _height - paddingTop - paddingBottom,\n width: _width - paddingLeft - paddingRight\n });\n\n onResize({ height: _height, width: _width });\n }\n }\n }, _this._setRef = function (autoSizer) {\n _this._autoSizer = autoSizer;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(AutoSizer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var nonce = this.props.nonce;\n\n if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\n this._onResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disableHeight = _props.disableHeight,\n disableWidth = _props.disableWidth,\n style = _props.style;\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n var outerStyle = { overflow: 'visible' };\n var childParams = {};\n\n if (!disableHeight) {\n outerStyle.height = 0;\n childParams.height = height;\n }\n\n if (!disableWidth) {\n outerStyle.width = 0;\n childParams.width = width;\n }\n\n /**\n * TODO: Avoid rendering children before the initial measurements have been collected.\n * At best this would just be wasting cycles.\n * Add this check into version 10 though as it could break too many ref callbacks in version 9.\n * Note that if default width/height props were provided this would still work with SSR.\n if (\n height !== 0 &&\n width !== 0\n ) {\n child = children({ height, width })\n }\n */\n\n return React.createElement(\n 'div',\n {\n className: className,\n ref: this._setRef,\n style: _extends({}, outerStyle, style) },\n children(childParams)\n );\n }\n }]);\n\n return AutoSizer;\n}(React.PureComponent);\n\nAutoSizer.defaultProps = {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n};\nAutoSizer.propTypes = process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n children: PropTypes.func.isRequired,\n\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n className: PropTypes.string,\n\n\n /** Default height to use for initial render; useful for SSR */\n defaultHeight: PropTypes.number,\n\n\n /** Default width to use for initial render; useful for SSR */\n defaultWidth: PropTypes.number,\n\n\n /** Disable dynamic :height property */\n disableHeight: PropTypes.bool.isRequired,\n\n\n /** Disable dynamic :width property */\n disableWidth: PropTypes.bool.isRequired,\n\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n nonce: PropTypes.string,\n\n\n /** Callback to be invoked on-resize */\n onResize: PropTypes.func.isRequired,\n\n\n /** Optional inline style */\n style: PropTypes.object\n};\nexport default AutoSizer;\nimport PropTypes from 'prop-types';","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\n\n/**\n * Wraps a cell and measures its rendered content.\n * Measurements are stored in a per-cell cache.\n * Cached-content is not be re-measured.\n */\nvar CellMeasurer = function (_React$PureComponent) {\n _inherits(CellMeasurer, _React$PureComponent);\n\n function CellMeasurer() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, CellMeasurer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CellMeasurer.__proto__ || _Object$getPrototypeOf(CellMeasurer)).call.apply(_ref, [this].concat(args))), _this), _this._measure = function () {\n var _this$props = _this.props,\n cache = _this$props.cache,\n _this$props$columnInd = _this$props.columnIndex,\n columnIndex = _this$props$columnInd === undefined ? 0 : _this$props$columnInd,\n parent = _this$props.parent,\n _this$props$rowIndex = _this$props.rowIndex,\n rowIndex = _this$props$rowIndex === undefined ? _this.props.index || 0 : _this$props$rowIndex;\n\n var _this$_getCellMeasure = _this._getCellMeasurements(),\n height = _this$_getCellMeasure.height,\n width = _this$_getCellMeasure.width;\n\n if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {\n cache.set(rowIndex, columnIndex, width, height);\n\n if (parent && typeof parent.recomputeGridSize === 'function') {\n parent.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(CellMeasurer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._maybeMeasureCell();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this._maybeMeasureCell();\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return typeof children === 'function' ? children({ measure: this._measure }) : children;\n }\n }, {\n key: '_getCellMeasurements',\n value: function _getCellMeasurements() {\n var cache = this.props.cache;\n\n\n var node = findDOMNode(this);\n\n // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height\n\n if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {\n var styleWidth = node.style.width;\n var styleHeight = node.style.height;\n\n // If we are re-measuring a cell that has already been measured,\n // It will have a hard-coded width/height from the previous measurement.\n // The fact that we are measuring indicates this measurement is probably stale,\n // So explicitly clear it out (eg set to \"auto\") so we can recalculate.\n // See issue #593 for more info.\n // Even if we are measuring initially- if we're inside of a MultiGrid component,\n // Explicitly clear width/height before measuring to avoid being tainted by another Grid.\n // eg top/left Grid renders before bottom/right Grid\n // Since the CellMeasurerCache is shared between them this taints derived cell size values.\n if (!cache.hasFixedWidth()) {\n node.style.width = 'auto';\n }\n if (!cache.hasFixedHeight()) {\n node.style.height = 'auto';\n }\n\n var height = Math.ceil(node.offsetHeight);\n var width = Math.ceil(node.offsetWidth);\n\n // Reset after measuring to avoid breaking styles; see #660\n if (styleWidth) {\n node.style.width = styleWidth;\n }\n if (styleHeight) {\n node.style.height = styleHeight;\n }\n\n return { height: height, width: width };\n } else {\n return { height: 0, width: 0 };\n }\n }\n }, {\n key: '_maybeMeasureCell',\n value: function _maybeMeasureCell() {\n var _props = this.props,\n cache = _props.cache,\n _props$columnIndex = _props.columnIndex,\n columnIndex = _props$columnIndex === undefined ? 0 : _props$columnIndex,\n parent = _props.parent,\n _props$rowIndex = _props.rowIndex,\n rowIndex = _props$rowIndex === undefined ? this.props.index || 0 : _props$rowIndex;\n\n\n if (!cache.has(rowIndex, columnIndex)) {\n var _getCellMeasurements2 = this._getCellMeasurements(),\n height = _getCellMeasurements2.height,\n width = _getCellMeasurements2.width;\n\n cache.set(rowIndex, columnIndex, width, height);\n\n // If size has changed, let Grid know to re-render.\n if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {\n parent.invalidateCellSizeAfterRender({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }\n }]);\n\n return CellMeasurer;\n}(React.PureComponent);\n\n// Used for DEV mode warning check\n\n\nCellMeasurer.__internalCellMeasurerFlag = false;\nCellMeasurer.propTypes = process.env.NODE_ENV === 'production' ? null : {\n cache: function cache() {\n return (typeof bpfrpt_proptype_CellMeasureCache === 'function' ? bpfrpt_proptype_CellMeasureCache.isRequired ? bpfrpt_proptype_CellMeasureCache.isRequired : bpfrpt_proptype_CellMeasureCache : PropTypes.shape(bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);\n },\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,\n columnIndex: PropTypes.number,\n index: PropTypes.number,\n parent: PropTypes.shape({\n invalidateCellSizeAfterRender: PropTypes.func,\n recomputeGridSize: PropTypes.func\n }).isRequired,\n rowIndex: PropTypes.number\n};\nexport default CellMeasurer;\nif (process.env.NODE_ENV !== 'production') {\n CellMeasurer.__internalCellMeasurerFlag = true;\n}\nimport { bpfrpt_proptype_CellMeasureCache } from './types';\nimport PropTypes from 'prop-types';","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\n\nexport var DEFAULT_HEIGHT = 30;\n\nexport var DEFAULT_WIDTH = 100;\n\n// Enables more intelligent mapping of a given column and row index to an item ID.\n// This prevents a cell cache from being invalidated when its parent collection is modified.\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCache = function () {\n function CellMeasurerCache() {\n var _this = this;\n\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, CellMeasurerCache);\n\n this._cellHeightCache = {};\n this._cellWidthCache = {};\n this._columnWidthCache = {};\n this._rowHeightCache = {};\n this._columnCount = 0;\n this._rowCount = 0;\n\n this.columnWidth = function (_ref) {\n var index = _ref.index;\n\n var key = _this._keyMapper(0, index);\n\n return _this._columnWidthCache.hasOwnProperty(key) ? _this._columnWidthCache[key] : _this._defaultWidth;\n };\n\n this.rowHeight = function (_ref2) {\n var index = _ref2.index;\n\n var key = _this._keyMapper(index, 0);\n\n return _this._rowHeightCache.hasOwnProperty(key) ? _this._rowHeightCache[key] : _this._defaultHeight;\n };\n\n var defaultHeight = params.defaultHeight,\n defaultWidth = params.defaultWidth,\n fixedHeight = params.fixedHeight,\n fixedWidth = params.fixedWidth,\n keyMapper = params.keyMapper,\n minHeight = params.minHeight,\n minWidth = params.minWidth;\n\n\n this._hasFixedHeight = fixedHeight === true;\n this._hasFixedWidth = fixedWidth === true;\n this._minHeight = minHeight || 0;\n this._minWidth = minWidth || 0;\n this._keyMapper = keyMapper || defaultKeyMapper;\n\n this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);\n this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._hasFixedHeight === false && this._hasFixedWidth === false) {\n console.warn(\"CellMeasurerCache should only measure a cell's width or height. \" + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');\n }\n\n if (this._hasFixedHeight === false && this._defaultHeight === 0) {\n console.warn('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');\n }\n\n if (this._hasFixedWidth === false && this._defaultWidth === 0) {\n console.warn('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');\n }\n }\n }\n\n _createClass(CellMeasurerCache, [{\n key: 'clear',\n value: function clear(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var key = this._keyMapper(rowIndex, columnIndex);\n\n delete this._cellHeightCache[key];\n delete this._cellWidthCache[key];\n\n this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);\n }\n }, {\n key: 'clearAll',\n value: function clearAll() {\n this._cellHeightCache = {};\n this._cellWidthCache = {};\n this._columnWidthCache = {};\n this._rowHeightCache = {};\n this._rowCount = 0;\n this._columnCount = 0;\n }\n }, {\n key: 'hasFixedHeight',\n value: function hasFixedHeight() {\n return this._hasFixedHeight;\n }\n }, {\n key: 'hasFixedWidth',\n value: function hasFixedWidth() {\n return this._hasFixedWidth;\n }\n }, {\n key: 'getHeight',\n value: function getHeight(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (this._hasFixedHeight) {\n return this._defaultHeight;\n } else {\n var _key = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellHeightCache.hasOwnProperty(_key) ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;\n }\n }\n }, {\n key: 'getWidth',\n value: function getWidth(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (this._hasFixedWidth) {\n return this._defaultWidth;\n } else {\n var _key2 = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellWidthCache.hasOwnProperty(_key2) ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;\n }\n }\n }, {\n key: 'has',\n value: function has(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var key = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellHeightCache.hasOwnProperty(key);\n }\n }, {\n key: 'set',\n value: function set(rowIndex, columnIndex, width, height) {\n var key = this._keyMapper(rowIndex, columnIndex);\n\n if (columnIndex >= this._columnCount) {\n this._columnCount = columnIndex + 1;\n }\n if (rowIndex >= this._rowCount) {\n this._rowCount = rowIndex + 1;\n }\n\n // Size is cached per cell so we don't have to re-measure if cells are re-ordered.\n this._cellHeightCache[key] = height;\n this._cellWidthCache[key] = width;\n\n this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);\n }\n }, {\n key: '_updateCachedColumnAndRowSizes',\n value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {\n // :columnWidth and :rowHeight are derived based on all cells in a column/row.\n // Pre-cache these derived values for faster lookup later.\n // Reads are expected to occur more frequently than writes in this case.\n // Only update non-fixed dimensions though to avoid doing unnecessary work.\n if (!this._hasFixedWidth) {\n var columnWidth = 0;\n for (var i = 0; i < this._rowCount; i++) {\n columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));\n }\n var columnKey = this._keyMapper(0, columnIndex);\n this._columnWidthCache[columnKey] = columnWidth;\n }\n if (!this._hasFixedHeight) {\n var rowHeight = 0;\n for (var _i = 0; _i < this._columnCount; _i++) {\n rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));\n }\n var rowKey = this._keyMapper(rowIndex, 0);\n this._rowHeightCache[rowKey] = rowHeight;\n }\n }\n }, {\n key: 'defaultHeight',\n get: function get() {\n return this._defaultHeight;\n }\n }, {\n key: 'defaultWidth',\n get: function get() {\n return this._defaultWidth;\n }\n }]);\n\n return CellMeasurerCache;\n}();\n\nexport default CellMeasurerCache;\n\n\nfunction defaultKeyMapper(rowIndex, columnIndex) {\n return rowIndex + '-' + columnIndex;\n}\nimport { bpfrpt_proptype_CellMeasureCache } from './types';","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport getScrollbarSize from 'dom-helpers/util/scrollbarSize';\n\n// @TODO Merge Collection and CollectionView\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nvar IS_SCROLLING_TIMEOUT = 150;\n\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n\n/**\n * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.\n * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.\n */\n\nvar CollectionView = function (_React$PureComponent) {\n _inherits(CollectionView, _React$PureComponent);\n\n // Invokes callbacks only when their values have changed.\n function CollectionView() {\n var _ref;\n\n _classCallCheck(this, CollectionView);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n // We handle this case in componentDidMount()\n var _this = _possibleConstructorReturn(this, (_ref = CollectionView.__proto__ || _Object$getPrototypeOf(CollectionView)).call.apply(_ref, [this].concat(args)));\n\n _this.state = {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n };\n _this._calculateSizeAndPositionDataOnNextUpdate = false;\n _this._onSectionRenderedMemoizer = createCallbackMemoizer();\n _this._onScrollMemoizer = createCallbackMemoizer(false);\n\n _this._invokeOnSectionRenderedHelper = function () {\n var _this$props = _this.props,\n cellLayoutManager = _this$props.cellLayoutManager,\n onSectionRendered = _this$props.onSectionRendered;\n\n\n _this._onSectionRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n indices: cellLayoutManager.getLastRenderedIndices()\n }\n });\n };\n\n _this._setScrollingContainerRef = function (ref) {\n _this._scrollingContainer = ref;\n };\n\n _this._updateScrollPositionForScrollToCell = function () {\n var _this$props2 = _this.props,\n cellLayoutManager = _this$props2.cellLayoutManager,\n height = _this$props2.height,\n scrollToAlignment = _this$props2.scrollToAlignment,\n scrollToCell = _this$props2.scrollToCell,\n width = _this$props2.width;\n var _this$state = _this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n\n\n if (scrollToCell >= 0) {\n var scrollPosition = cellLayoutManager.getScrollPositionForCell({\n align: scrollToAlignment,\n cellIndex: scrollToCell,\n height: height,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n\n if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {\n _this._setScrollPosition(scrollPosition);\n }\n }\n };\n\n _this._onScroll = function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== _this._scrollingContainer) {\n return;\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n _this._enablePointerEventsAfterDelay();\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n var _this$props3 = _this.props,\n cellLayoutManager = _this$props3.cellLayoutManager,\n height = _this$props3.height,\n isScrollingChange = _this$props3.isScrollingChange,\n width = _this$props3.width;\n\n var scrollbarSize = _this._scrollbarSize;\n\n var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge.height,\n totalWidth = _cellLayoutManager$ge.width;\n\n var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));\n var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop));\n\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {\n // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.\n // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).\n // All things considered, this seems to be the best current work around that I'm aware of.\n // For more information see https://github.com/bvaughn/react-virtualized/pull/124\n var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED;\n\n // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n if (!_this.state.isScrolling) {\n isScrollingChange(true);\n }\n\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollPositionChangeReason: scrollPositionChangeReason,\n scrollTop: scrollTop\n });\n }\n\n _this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalWidth: totalWidth,\n totalHeight: totalHeight\n });\n };\n\n _this._scrollbarSize = getScrollbarSize();\n if (_this._scrollbarSize === undefined) {\n _this._scrollbarSizeMeasured = false;\n _this._scrollbarSize = 0;\n } else {\n _this._scrollbarSizeMeasured = true;\n }\n return _this;\n }\n\n /**\n * Forced recompute of cell sizes and positions.\n * This function should be called if cell sizes have changed but nothing else has.\n * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.\n */\n\n\n _createClass(CollectionView, [{\n key: 'recomputeCellSizesAndPositions',\n value: function recomputeCellSizesAndPositions() {\n this._calculateSizeAndPositionDataOnNextUpdate = true;\n this.forceUpdate();\n }\n\n /* ---------------------------- Component lifecycle methods ---------------------------- */\n\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n cellLayoutManager = _props.cellLayoutManager,\n scrollLeft = _props.scrollLeft,\n scrollToCell = _props.scrollToCell,\n scrollTop = _props.scrollTop;\n\n // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n if (!this._scrollbarSizeMeasured) {\n this._scrollbarSize = getScrollbarSize();\n this._scrollbarSizeMeasured = true;\n this.setState({});\n }\n\n if (scrollToCell >= 0) {\n this._updateScrollPositionForScrollToCell();\n } else if (scrollLeft >= 0 || scrollTop >= 0) {\n this._setScrollPosition({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n }\n\n // Update onSectionRendered callback.\n this._invokeOnSectionRenderedHelper();\n\n var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge2.height,\n totalWidth = _cellLayoutManager$ge2.width;\n\n // Initialize onScroll callback.\n\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalHeight: totalHeight,\n totalWidth: totalWidth\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _props2 = this.props,\n height = _props2.height,\n scrollToAlignment = _props2.scrollToAlignment,\n scrollToCell = _props2.scrollToCell,\n width = _props2.width;\n var _state = this.state,\n scrollLeft = _state.scrollLeft,\n scrollPositionChangeReason = _state.scrollPositionChangeReason,\n scrollTop = _state.scrollTop;\n\n // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n }\n\n // Update scroll offsets if the current :scrollToCell values requires it\n if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n this._updateScrollPositionForScrollToCell();\n }\n\n // Update onRowsRendered callback if start/stop indices have changed\n this._invokeOnSectionRenderedHelper();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n autoHeight = _props3.autoHeight,\n cellCount = _props3.cellCount,\n cellLayoutManager = _props3.cellLayoutManager,\n className = _props3.className,\n height = _props3.height,\n horizontalOverscanSize = _props3.horizontalOverscanSize,\n id = _props3.id,\n noContentRenderer = _props3.noContentRenderer,\n style = _props3.style,\n verticalOverscanSize = _props3.verticalOverscanSize,\n width = _props3.width;\n var _state2 = this.state,\n isScrolling = _state2.isScrolling,\n scrollLeft = _state2.scrollLeft,\n scrollTop = _state2.scrollTop;\n\n // Memoization reset\n\n if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {\n this._lastRenderedCellCount = cellCount;\n this._lastRenderedCellLayoutManager = cellLayoutManager;\n this._calculateSizeAndPositionDataOnNextUpdate = false;\n\n cellLayoutManager.calculateSizeAndPositionData();\n }\n\n var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge3.height,\n totalWidth = _cellLayoutManager$ge3.width;\n\n // Safely expand the rendered area by the specified overscan amount\n\n\n var left = Math.max(0, scrollLeft - horizontalOverscanSize);\n var top = Math.max(0, scrollTop - verticalOverscanSize);\n var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);\n var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);\n\n var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({\n height: bottom - top,\n isScrolling: isScrolling,\n width: right - left,\n x: left,\n y: top\n }) : [];\n\n var collectionStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n WebkitOverflowScrolling: 'touch',\n width: width,\n willChange: 'transform'\n };\n\n // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0;\n\n // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n\n return React.createElement(\n 'div',\n {\n ref: this._setScrollingContainerRef,\n 'aria-label': this.props['aria-label'],\n className: cn('ReactVirtualized__Collection', className),\n id: id,\n onScroll: this._onScroll,\n role: 'grid',\n style: _extends({}, collectionStyle, style),\n tabIndex: 0 },\n cellCount > 0 && React.createElement(\n 'div',\n {\n className: 'ReactVirtualized__Collection__innerScrollContainer',\n style: {\n height: totalHeight,\n maxHeight: totalHeight,\n maxWidth: totalWidth,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n width: totalWidth\n } },\n childrenToDisplay\n ),\n cellCount === 0 && noContentRenderer()\n );\n }\n\n /* ---------------------------- Helper methods ---------------------------- */\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Collection.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n\n }, {\n key: '_enablePointerEventsAfterDelay',\n value: function _enablePointerEventsAfterDelay() {\n var _this2 = this;\n\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = setTimeout(function () {\n var isScrollingChange = _this2.props.isScrollingChange;\n\n\n isScrollingChange(false);\n\n _this2._disablePointerEventsTimeoutId = null;\n _this2.setState({\n isScrolling: false\n });\n }, IS_SCROLLING_TIMEOUT);\n }\n }, {\n key: '_invokeOnScrollMemoizer',\n value: function _invokeOnScrollMemoizer(_ref2) {\n var _this3 = this;\n\n var scrollLeft = _ref2.scrollLeft,\n scrollTop = _ref2.scrollTop,\n totalHeight = _ref2.totalHeight,\n totalWidth = _ref2.totalWidth;\n\n this._onScrollMemoizer({\n callback: function callback(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n var _props4 = _this3.props,\n height = _props4.height,\n onScroll = _props4.onScroll,\n width = _props4.width;\n\n\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: '_setScrollPosition',\n value: function _setScrollPosition(_ref4) {\n var scrollLeft = _ref4.scrollLeft,\n scrollTop = _ref4.scrollTop;\n\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n\n if (scrollLeft >= 0) {\n newState.scrollLeft = scrollLeft;\n }\n\n if (scrollTop >= 0) {\n newState.scrollTop = scrollTop;\n }\n\n if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n this.setState(newState);\n }\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {\n return {\n scrollLeft: 0,\n scrollTop: 0\n };\n } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return CollectionView;\n}(React.PureComponent);\n\nCollectionView.defaultProps = {\n 'aria-label': 'grid',\n horizontalOverscanSize: 0,\n noContentRenderer: function noContentRenderer() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n onSectionRendered: function onSectionRendered() {\n return null;\n },\n scrollToAlignment: 'auto',\n scrollToCell: -1,\n style: {},\n verticalOverscanSize: 0\n};\nCollectionView.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /**\n * Number of cells in collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.\n */\n cellLayoutManager: PropTypes.object.isRequired,\n\n /**\n * Optional custom CSS class name to attach to root Collection element.\n */\n className: PropTypes.string,\n\n /**\n * Height of Collection; this property determines the number of visible (vs virtualized) rows.\n */\n height: PropTypes.number.isRequired,\n\n /**\n * Optional custom id to attach to root Collection element.\n */\n id: PropTypes.string,\n\n /**\n * Enables the `Collection` to horiontally \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n horizontalOverscanSize: PropTypes.number.isRequired,\n\n isScrollingChange: PropTypes.func,\n\n /**\n * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.\n */\n noContentRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the section of the Collection that was just rendered.\n * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.\n */\n onSectionRendered: PropTypes.func.isRequired,\n\n /**\n * Horizontal offset.\n */\n scrollLeft: PropTypes.number,\n\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /**\n * Cell index to ensure visible (by forcefully scrolling if necessary).\n */\n scrollToCell: PropTypes.number.isRequired,\n\n /**\n * Vertical offset.\n */\n scrollTop: PropTypes.number,\n\n /**\n * Optional custom inline style to attach to root Collection element.\n */\n style: PropTypes.object,\n\n /**\n * Enables the `Collection` to vertically \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n verticalOverscanSize: PropTypes.number.isRequired,\n\n /**\n * Width of Collection; this property determines the number of visible (vs virtualized) columns.\n */\n width: PropTypes.number.isRequired\n} : {};\n\n\npolyfill(CollectionView);\n\nexport default CollectionView;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\n/**\n * A section of the Window.\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * Sections have a fixed size and contain 0 to many cells (tracked by their indices).\n */\nvar Section = function () {\n function Section(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n\n _classCallCheck(this, Section);\n\n this.height = height;\n this.width = width;\n this.x = x;\n this.y = y;\n\n this._indexMap = {};\n this._indices = [];\n }\n\n /** Add a cell to this section. */\n\n\n _createClass(Section, [{\n key: 'addCellIndex',\n value: function addCellIndex(_ref2) {\n var index = _ref2.index;\n\n if (!this._indexMap[index]) {\n this._indexMap[index] = true;\n this._indices.push(index);\n }\n }\n\n /** Get all cell indices that have been added to this section. */\n\n }, {\n key: 'getCellIndices',\n value: function getCellIndices() {\n return this._indices;\n }\n\n /** Intended for debugger/test purposes only */\n\n }, {\n key: 'toString',\n value: function toString() {\n return this.x + ',' + this.y + ' ' + this.width + 'x' + this.height;\n }\n }]);\n\n return Section;\n}();\n\nexport default Section;\nimport { bpfrpt_proptype_Index } from './types';\nimport { bpfrpt_proptype_SizeAndPositionInfo } from './types';","import _Object$keys from 'babel-runtime/core-js/object/keys';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n/**\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * \n */\nimport Section from './Section';\n\n\nvar SECTION_SIZE = 100;\n\n/**\n * Contains 0 to many Sections.\n * Grows (and adds Sections) dynamically as cells are registered.\n * Automatically adds cells to the appropriate Section(s).\n */\nvar SectionManager = function () {\n function SectionManager() {\n var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;\n\n _classCallCheck(this, SectionManager);\n\n this._sectionSize = sectionSize;\n\n this._cellMetadata = [];\n this._sections = {};\n }\n\n /**\n * Gets all cell indices contained in the specified region.\n * A region may encompass 1 or more Sections.\n */\n\n\n _createClass(SectionManager, [{\n key: 'getCellIndices',\n value: function getCellIndices(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n\n var indices = {};\n\n this.getSections({ height: height, width: width, x: x, y: y }).forEach(function (section) {\n return section.getCellIndices().forEach(function (index) {\n indices[index] = index;\n });\n });\n\n // Object keys are strings; this function returns numbers\n return _Object$keys(indices).map(function (index) {\n return indices[index];\n });\n }\n\n /** Get size and position information for the cell specified. */\n\n }, {\n key: 'getCellMetadata',\n value: function getCellMetadata(_ref2) {\n var index = _ref2.index;\n\n return this._cellMetadata[index];\n }\n\n /** Get all Sections overlapping the specified region. */\n\n }, {\n key: 'getSections',\n value: function getSections(_ref3) {\n var height = _ref3.height,\n width = _ref3.width,\n x = _ref3.x,\n y = _ref3.y;\n\n var sectionXStart = Math.floor(x / this._sectionSize);\n var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);\n var sectionYStart = Math.floor(y / this._sectionSize);\n var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);\n\n var sections = [];\n\n for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n var key = sectionX + '.' + sectionY;\n\n if (!this._sections[key]) {\n this._sections[key] = new Section({\n height: this._sectionSize,\n width: this._sectionSize,\n x: sectionX * this._sectionSize,\n y: sectionY * this._sectionSize\n });\n }\n\n sections.push(this._sections[key]);\n }\n }\n\n return sections;\n }\n\n /** Total number of Sections based on the currently registered cells. */\n\n }, {\n key: 'getTotalSectionCount',\n value: function getTotalSectionCount() {\n return _Object$keys(this._sections).length;\n }\n\n /** Intended for debugger/test purposes only */\n\n }, {\n key: 'toString',\n value: function toString() {\n var _this = this;\n\n return _Object$keys(this._sections).map(function (index) {\n return _this._sections[index].toString();\n });\n }\n\n /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */\n\n }, {\n key: 'registerCell',\n value: function registerCell(_ref4) {\n var cellMetadatum = _ref4.cellMetadatum,\n index = _ref4.index;\n\n this._cellMetadata[index] = cellMetadatum;\n\n this.getSections(cellMetadatum).forEach(function (section) {\n return section.addCellIndex({ index: index });\n });\n }\n }]);\n\n return SectionManager;\n}();\n\nexport default SectionManager;\nimport { bpfrpt_proptype_Index } from './types';\nimport { bpfrpt_proptype_SizeAndPositionInfo } from './types';","/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param cellOffset Offset (x or y) position for cell\n * @param cellSize Size (width or height) of cell\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return Offset to use to ensure the specified cell is visible\n */\nexport default function getUpdatedOffsetForIndex(_ref) {\n var _ref$align = _ref.align,\n align = _ref$align === undefined ? 'auto' : _ref$align,\n cellOffset = _ref.cellOffset,\n cellSize = _ref.cellSize,\n containerSize = _ref.containerSize,\n currentOffset = _ref.currentOffset;\n\n var maxOffset = cellOffset;\n var minOffset = maxOffset - containerSize + cellSize;\n\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n return maxOffset - (containerSize - cellSize) / 2;\n default:\n return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport CollectionView from './CollectionView';\nimport _calculateSizeAndPositionData from './utils/calculateSizeAndPositionData';\nimport getUpdatedOffsetForIndex from '../utils/getUpdatedOffsetForIndex';\n\n/**\n * Renders scattered or non-linear data.\n * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.\n */\nvar Collection = function (_React$PureComponent) {\n _inherits(Collection, _React$PureComponent);\n\n function Collection(props, context) {\n _classCallCheck(this, Collection);\n\n var _this = _possibleConstructorReturn(this, (Collection.__proto__ || _Object$getPrototypeOf(Collection)).call(this, props, context));\n\n _this._cellMetadata = [];\n _this._lastRenderedCellIndices = [];\n\n // Cell cache during scroll (for perforamnce)\n _this._cellCache = [];\n\n _this._isScrollingChange = _this._isScrollingChange.bind(_this);\n _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_this);\n return _this;\n }\n\n _createClass(Collection, [{\n key: 'forceUpdate',\n value: function forceUpdate() {\n if (this._collectionView !== undefined) {\n this._collectionView.forceUpdate();\n }\n }\n\n /** See Collection#recomputeCellSizesAndPositions */\n\n }, {\n key: 'recomputeCellSizesAndPositions',\n value: function recomputeCellSizesAndPositions() {\n this._cellCache = [];\n this._collectionView.recomputeCellSizesAndPositions();\n }\n\n /** React lifecycle methods */\n\n }, {\n key: 'render',\n value: function render() {\n var props = _objectWithoutProperties(this.props, []);\n\n return React.createElement(CollectionView, _extends({\n cellLayoutManager: this,\n isScrollingChange: this._isScrollingChange,\n ref: this._setCollectionViewRef\n }, props));\n }\n\n /** CellLayoutManager interface */\n\n }, {\n key: 'calculateSizeAndPositionData',\n value: function calculateSizeAndPositionData() {\n var _props = this.props,\n cellCount = _props.cellCount,\n cellSizeAndPositionGetter = _props.cellSizeAndPositionGetter,\n sectionSize = _props.sectionSize;\n\n\n var data = _calculateSizeAndPositionData({\n cellCount: cellCount,\n cellSizeAndPositionGetter: cellSizeAndPositionGetter,\n sectionSize: sectionSize\n });\n\n this._cellMetadata = data.cellMetadata;\n this._sectionManager = data.sectionManager;\n this._height = data.height;\n this._width = data.width;\n }\n\n /**\n * Returns the most recently rendered set of cell indices.\n */\n\n }, {\n key: 'getLastRenderedIndices',\n value: function getLastRenderedIndices() {\n return this._lastRenderedCellIndices;\n }\n\n /**\n * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.\n */\n\n }, {\n key: 'getScrollPositionForCell',\n value: function getScrollPositionForCell(_ref) {\n var align = _ref.align,\n cellIndex = _ref.cellIndex,\n height = _ref.height,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n width = _ref.width;\n var cellCount = this.props.cellCount;\n\n\n if (cellIndex >= 0 && cellIndex < cellCount) {\n var cellMetadata = this._cellMetadata[cellIndex];\n\n scrollLeft = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.x,\n cellSize: cellMetadata.width,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: cellIndex\n });\n\n scrollTop = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.y,\n cellSize: cellMetadata.height,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: cellIndex\n });\n }\n\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n }, {\n key: 'getTotalSize',\n value: function getTotalSize() {\n return {\n height: this._height,\n width: this._width\n };\n }\n }, {\n key: 'cellRenderers',\n value: function cellRenderers(_ref2) {\n var _this2 = this;\n\n var height = _ref2.height,\n isScrolling = _ref2.isScrolling,\n width = _ref2.width,\n x = _ref2.x,\n y = _ref2.y;\n var _props2 = this.props,\n cellGroupRenderer = _props2.cellGroupRenderer,\n cellRenderer = _props2.cellRenderer;\n\n // Store for later calls to getLastRenderedIndices()\n\n this._lastRenderedCellIndices = this._sectionManager.getCellIndices({\n height: height,\n width: width,\n x: x,\n y: y\n });\n\n return cellGroupRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n var index = _ref3.index;\n return _this2._sectionManager.getCellMetadata({ index: index });\n },\n indices: this._lastRenderedCellIndices,\n isScrolling: isScrolling\n });\n }\n }, {\n key: '_isScrollingChange',\n value: function _isScrollingChange(isScrolling) {\n if (!isScrolling) {\n this._cellCache = [];\n }\n }\n }, {\n key: '_setCollectionViewRef',\n value: function _setCollectionViewRef(ref) {\n this._collectionView = ref;\n }\n }]);\n\n return Collection;\n}(React.PureComponent);\n\nCollection.defaultProps = {\n 'aria-label': 'grid',\n cellGroupRenderer: defaultCellGroupRenderer\n};\nexport default Collection;\nCollection.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Number of cells in Collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a group of cells given their indices.\n * Should implement the following interface: ({\n * cellSizeAndPositionGetter:Function,\n * indices: Array,\n * cellRenderer: Function\n * }): Array\n */\n cellGroupRenderer: PropTypes.func.isRequired,\n\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element\n */\n cellRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback responsible for returning size and offset/position information for a given cell (index).\n * ({ index: number }): { height: number, width: number, x: number, y: number }\n */\n cellSizeAndPositionGetter: PropTypes.func.isRequired,\n\n /**\n * Optionally override the size of the sections a Collection's cells are split into.\n */\n sectionSize: PropTypes.number\n} : {};\n\n\nfunction defaultCellGroupRenderer(_ref4) {\n var cellCache = _ref4.cellCache,\n cellRenderer = _ref4.cellRenderer,\n cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,\n indices = _ref4.indices,\n isScrolling = _ref4.isScrolling;\n\n return indices.map(function (index) {\n var cellMetadata = cellSizeAndPositionGetter({ index: index });\n\n var cellRendererProps = {\n index: index,\n isScrolling: isScrolling,\n key: index,\n style: {\n height: cellMetadata.height,\n left: cellMetadata.x,\n position: 'absolute',\n top: cellMetadata.y,\n width: cellMetadata.width\n }\n };\n\n // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling complets.\n if (isScrolling) {\n if (!(index in cellCache)) {\n cellCache[index] = cellRenderer(cellRendererProps);\n }\n\n return cellCache[index];\n } else {\n return cellRenderer(cellRendererProps);\n }\n }).filter(function (renderedCell) {\n return !!renderedCell;\n });\n}\nimport { bpfrpt_proptype_ScrollPosition } from './types';\nimport { bpfrpt_proptype_SizeInfo } from './types';","import SectionManager from '../SectionManager';\n\nexport default function calculateSizeAndPositionData(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n sectionSize = _ref.sectionSize;\n\n var cellMetadata = [];\n var sectionManager = new SectionManager(sectionSize);\n var height = 0;\n var width = 0;\n\n for (var index = 0; index < cellCount; index++) {\n var cellMetadatum = cellSizeAndPositionGetter({ index: index });\n\n if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {\n throw Error('Invalid metadata returned for cell ' + index + ':\\n x:' + cellMetadatum.x + ', y:' + cellMetadatum.y + ', width:' + cellMetadatum.width + ', height:' + cellMetadatum.height);\n }\n\n height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\n\n cellMetadata[index] = cellMetadatum;\n sectionManager.registerCell({\n cellMetadatum: cellMetadatum,\n index: index\n });\n }\n\n return {\n cellMetadata: cellMetadata,\n height: height,\n sectionManager: sectionManager,\n width: width\n };\n}","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\n\nvar ColumnSizer = function (_React$PureComponent) {\n _inherits(ColumnSizer, _React$PureComponent);\n\n function ColumnSizer(props, context) {\n _classCallCheck(this, ColumnSizer);\n\n var _this = _possibleConstructorReturn(this, (ColumnSizer.__proto__ || _Object$getPrototypeOf(ColumnSizer)).call(this, props, context));\n\n _this._registerChild = _this._registerChild.bind(_this);\n return _this;\n }\n\n _createClass(ColumnSizer, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props = this.props,\n columnMaxWidth = _props.columnMaxWidth,\n columnMinWidth = _props.columnMinWidth,\n columnCount = _props.columnCount,\n width = _props.width;\n\n\n if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize();\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n children = _props2.children,\n columnMaxWidth = _props2.columnMaxWidth,\n columnMinWidth = _props2.columnMinWidth,\n columnCount = _props2.columnCount,\n width = _props2.width;\n\n\n var safeColumnMinWidth = columnMinWidth || 1;\n\n var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n\n var columnWidth = width / columnCount;\n columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n columnWidth = Math.floor(columnWidth);\n\n var adjustedWidth = Math.min(width, columnWidth * columnCount);\n\n return children({\n adjustedWidth: adjustedWidth,\n columnWidth: columnWidth,\n getColumnWidth: function getColumnWidth() {\n return columnWidth;\n },\n registerChild: this._registerChild\n });\n }\n }, {\n key: '_registerChild',\n value: function _registerChild(child) {\n if (child && typeof child.recomputeGridSize !== 'function') {\n throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');\n }\n\n this._registeredChild = child;\n\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize();\n }\n }\n }]);\n\n return ColumnSizer;\n}(React.PureComponent);\n\nexport default ColumnSizer;\nColumnSizer.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized Grid.\n * This function should implement the following signature:\n * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n *\n * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n * The :registerChild should be passed to the Grid's :ref property.\n * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n */\n children: PropTypes.func.isRequired,\n\n /** Optional maximum allowed column width */\n columnMaxWidth: PropTypes.number,\n\n /** Optional minimum allowed column width */\n columnMinWidth: PropTypes.number,\n\n /** Number of columns in Grid or Table child */\n columnCount: PropTypes.number.isRequired,\n\n /** Width of Grid or Table child */\n width: PropTypes.number.isRequired\n} : {};","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\n\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\n\nvar InfiniteLoader = function (_React$PureComponent) {\n _inherits(InfiniteLoader, _React$PureComponent);\n\n function InfiniteLoader(props, context) {\n _classCallCheck(this, InfiniteLoader);\n\n var _this = _possibleConstructorReturn(this, (InfiniteLoader.__proto__ || _Object$getPrototypeOf(InfiniteLoader)).call(this, props, context));\n\n _this._loadMoreRowsMemoizer = createCallbackMemoizer();\n\n _this._onRowsRendered = _this._onRowsRendered.bind(_this);\n _this._registerChild = _this._registerChild.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteLoader, [{\n key: 'resetLoadMoreRowsCache',\n value: function resetLoadMoreRowsCache(autoReload) {\n this._loadMoreRowsMemoizer = createCallbackMemoizer();\n\n if (autoReload) {\n this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children({\n onRowsRendered: this._onRowsRendered,\n registerChild: this._registerChild\n });\n }\n }, {\n key: '_loadUnloadedRanges',\n value: function _loadUnloadedRanges(unloadedRanges) {\n var _this2 = this;\n\n var loadMoreRows = this.props.loadMoreRows;\n\n\n unloadedRanges.forEach(function (unloadedRange) {\n var promise = loadMoreRows(unloadedRange);\n if (promise) {\n promise.then(function () {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (isRangeVisible({\n lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n startIndex: unloadedRange.startIndex,\n stopIndex: unloadedRange.stopIndex\n })) {\n if (_this2._registeredChild) {\n forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);\n }\n }\n });\n }\n });\n }\n }, {\n key: '_onRowsRendered',\n value: function _onRowsRendered(_ref) {\n var startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n this._lastRenderedStartIndex = startIndex;\n this._lastRenderedStopIndex = stopIndex;\n\n this._doStuff(startIndex, stopIndex);\n }\n }, {\n key: '_doStuff',\n value: function _doStuff(startIndex, stopIndex) {\n var _this3 = this;\n\n var _props = this.props,\n isRowLoaded = _props.isRowLoaded,\n minimumBatchSize = _props.minimumBatchSize,\n rowCount = _props.rowCount,\n threshold = _props.threshold;\n\n\n var unloadedRanges = scanForUnloadedRanges({\n isRowLoaded: isRowLoaded,\n minimumBatchSize: minimumBatchSize,\n rowCount: rowCount,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(rowCount - 1, stopIndex + threshold)\n });\n\n // For memoize comparison\n var squashedUnloadedRanges = unloadedRanges.reduce(function (reduced, unloadedRange) {\n return reduced.concat([unloadedRange.startIndex, unloadedRange.stopIndex]);\n }, []);\n\n this._loadMoreRowsMemoizer({\n callback: function callback() {\n _this3._loadUnloadedRanges(unloadedRanges);\n },\n indices: { squashedUnloadedRanges: squashedUnloadedRanges }\n });\n }\n }, {\n key: '_registerChild',\n value: function _registerChild(registeredChild) {\n this._registeredChild = registeredChild;\n }\n }]);\n\n return InfiniteLoader;\n}(React.PureComponent);\n\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\n\n\nInfiniteLoader.defaultProps = {\n minimumBatchSize: 10,\n rowCount: 0,\n threshold: 15\n};\nexport default InfiniteLoader;\nInfiniteLoader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized component.\n * This function should implement the following signature:\n * ({ onRowsRendered, registerChild }) => PropTypes.element\n *\n * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n * The :registerChild callback should be set as the virtualized component's :ref.\n */\n children: PropTypes.func.isRequired,\n\n /**\n * Function responsible for tracking the loaded state of each row.\n * It should implement the following signature: ({ index: number }): boolean\n */\n isRowLoaded: PropTypes.func.isRequired,\n\n /**\n * Callback to be invoked when more rows must be loaded.\n * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n * The returned Promise should be resolved once row data has finished loading.\n * It will be used to determine when to refresh the list with the newly-loaded data.\n * This callback may be called multiple times in reaction to a single scroll event.\n */\n loadMoreRows: PropTypes.func.isRequired,\n\n /**\n * Minimum number of rows to be loaded at a time.\n * This property can be used to batch requests to reduce HTTP requests.\n */\n minimumBatchSize: PropTypes.number.isRequired,\n\n /**\n * Number of rows in list; can be arbitrary high number if actual number is unknown.\n */\n rowCount: PropTypes.number.isRequired,\n\n /**\n * Threshold at which to pre-fetch data.\n * A threshold X means that data will start loading when a user scrolls within X rows.\n * This value defaults to 15.\n */\n threshold: PropTypes.number.isRequired\n} : {};\nexport function isRangeVisible(_ref2) {\n var lastRenderedStartIndex = _ref2.lastRenderedStartIndex,\n lastRenderedStopIndex = _ref2.lastRenderedStopIndex,\n startIndex = _ref2.startIndex,\n stopIndex = _ref2.stopIndex;\n\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\nexport function scanForUnloadedRanges(_ref3) {\n var isRowLoaded = _ref3.isRowLoaded,\n minimumBatchSize = _ref3.minimumBatchSize,\n rowCount = _ref3.rowCount,\n startIndex = _ref3.startIndex,\n stopIndex = _ref3.stopIndex;\n\n var unloadedRanges = [];\n\n var rangeStartIndex = null;\n var rangeStopIndex = null;\n\n for (var index = startIndex; index <= stopIndex; index++) {\n var loaded = isRowLoaded({ index: index });\n\n if (!loaded) {\n rangeStopIndex = index;\n if (rangeStartIndex === null) {\n rangeStartIndex = index;\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n\n rangeStartIndex = rangeStopIndex = null;\n }\n }\n\n // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.\n // Scan forward to try filling our :minimumBatchSize.\n if (rangeStopIndex !== null) {\n var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);\n\n for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {\n if (!isRowLoaded({ index: _index })) {\n rangeStopIndex = _index;\n } else {\n break;\n }\n }\n\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n }\n\n // Check to see if our first range ended prematurely.\n // In this case we should scan backwards to try filling our :minimumBatchSize.\n if (unloadedRanges.length) {\n var firstUnloadedRange = unloadedRanges[0];\n\n while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {\n var _index2 = firstUnloadedRange.startIndex - 1;\n\n if (!isRowLoaded({ index: _index2 })) {\n firstUnloadedRange.startIndex = _index2;\n } else {\n break;\n }\n }\n }\n\n return unloadedRanges;\n}\n\n/**\n * Since RV components use shallowCompare we need to force a render (even though props haven't changed).\n * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.\n * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,\n * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.\n * Else the inner Grid will not be re-rendered and visuals may be stale.\n *\n * Additionally, while a Grid is scrolling the cells can be cached,\n * So it's important to invalidate that cache by recalculating sizes\n * before forcing a rerender.\n */\nexport function forceUpdateReactVirtualizedComponent(component) {\n var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;\n\n if (recomputeSize) {\n recomputeSize.call(component, currentIndex);\n } else {\n component.forceUpdate();\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getOwnPropertyDescriptor from 'babel-runtime/core-js/object/get-own-property-descriptor';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport * as React from 'react';\nimport cn from 'classnames';\n\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\n\nvar List = function (_React$PureComponent) {\n _inherits(List, _React$PureComponent);\n\n function List() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, List);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = List.__proto__ || _Object$getPrototypeOf(List)).call.apply(_ref, [this].concat(args))), _this), _this._cellRenderer = function (_ref2) {\n var parent = _ref2.parent,\n rowIndex = _ref2.rowIndex,\n style = _ref2.style,\n isScrolling = _ref2.isScrolling,\n isVisible = _ref2.isVisible,\n key = _ref2.key;\n var rowRenderer = _this.props.rowRenderer;\n\n // TRICKY The style object is sometimes cached by Grid.\n // This prevents new style objects from bypassing shallowCompare().\n // However as of React 16, style props are auto-frozen (at least in dev mode)\n // Check to make sure we can still modify the style before proceeding.\n // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713\n\n var _Object$getOwnPropert = _Object$getOwnPropertyDescriptor(style, 'width'),\n writable = _Object$getOwnPropert.writable;\n\n if (writable) {\n // By default, List cells should be 100% width.\n // This prevents them from flowing under a scrollbar (if present).\n style.width = '100%';\n }\n\n return rowRenderer({\n index: rowIndex,\n style: style,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent\n });\n }, _this._setRef = function (ref) {\n _this.Grid = ref;\n }, _this._onScroll = function (_ref3) {\n var clientHeight = _ref3.clientHeight,\n scrollHeight = _ref3.scrollHeight,\n scrollTop = _ref3.scrollTop;\n var onScroll = _this.props.onScroll;\n\n\n onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n }, _this._onSectionRendered = function (_ref4) {\n var rowOverscanStartIndex = _ref4.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref4.rowOverscanStopIndex,\n rowStartIndex = _ref4.rowStartIndex,\n rowStopIndex = _ref4.rowStopIndex;\n var onRowsRendered = _this.props.onRowsRendered;\n\n\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(List, [{\n key: 'forceUpdateGrid',\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n\n /** See Grid#getOffsetForCell */\n\n }, {\n key: 'getOffsetForRow',\n value: function getOffsetForRow(_ref5) {\n var alignment = _ref5.alignment,\n index = _ref5.index;\n\n if (this.Grid) {\n var _Grid$getOffsetForCel = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index,\n columnIndex: 0\n }),\n _scrollTop = _Grid$getOffsetForCel.scrollTop;\n\n return _scrollTop;\n }\n return 0;\n }\n\n /** CellMeasurer compatibility */\n\n }, {\n key: 'invalidateCellSizeAfterRender',\n value: function invalidateCellSizeAfterRender(_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex;\n\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n\n /** See Grid#measureAllCells */\n\n }, {\n key: 'measureAllRows',\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n\n /** CellMeasurer compatibility */\n\n }, {\n key: 'recomputeGridSize',\n value: function recomputeGridSize() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$columnIndex = _ref7.columnIndex,\n columnIndex = _ref7$columnIndex === undefined ? 0 : _ref7$columnIndex,\n _ref7$rowIndex = _ref7.rowIndex,\n rowIndex = _ref7$rowIndex === undefined ? 0 : _ref7$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n\n /** See Grid#recomputeGridSize */\n\n }, {\n key: 'recomputeRowHeights',\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index,\n columnIndex: 0\n });\n }\n }\n\n /** See Grid#scrollToPosition */\n\n }, {\n key: 'scrollToPosition',\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToPosition({ scrollTop: scrollTop });\n }\n }\n\n /** See Grid#scrollToCell */\n\n }, {\n key: 'scrollToRow',\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n noRowsRenderer = _props.noRowsRenderer,\n scrollToIndex = _props.scrollToIndex,\n width = _props.width;\n\n\n var classNames = cn('ReactVirtualized__List', className);\n\n return React.createElement(Grid, _extends({}, this.props, {\n autoContainerWidth: true,\n cellRenderer: this._cellRenderer,\n className: classNames,\n columnWidth: width,\n columnCount: 1,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n scrollToRow: scrollToIndex\n }));\n }\n }]);\n\n return List;\n}(React.PureComponent);\n\nList.defaultProps = {\n autoHeight: false,\n estimatedRowSize: 30,\n onScroll: function onScroll() {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {},\n overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n overscanRowCount: 10,\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n};\nList.propTypes = process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": PropTypes.string,\n\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool.isRequired,\n\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n\n /**\n * Used to estimate the total height of a List before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: PropTypes.number.isRequired,\n\n\n /** Height constraint for list (determines how many actual rows are rendered) */\n height: PropTypes.number.isRequired,\n\n\n /** Optional renderer to be used in place of rows when rowCount is 0 */\n noRowsRenderer: function noRowsRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === 'function' ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n\n\n /** Callback invoked with information about the slice of rows that were just rendered. */\n\n onRowsRendered: PropTypes.func.isRequired,\n\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n onScroll: PropTypes.func.isRequired,\n\n\n /** See Grid#overscanIndicesGetter */\n overscanIndicesGetter: function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === 'function' ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowCount: PropTypes.number.isRequired,\n\n\n /** Either a fixed row height (number) or a function that returns the height of a row given its index. */\n rowHeight: function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === 'function' ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n\n /** Responsible for rendering a row given an index; ({ index: number }): node */\n rowRenderer: function rowRenderer() {\n return (typeof bpfrpt_proptype_RowRenderer === 'function' ? bpfrpt_proptype_RowRenderer.isRequired ? bpfrpt_proptype_RowRenderer.isRequired : bpfrpt_proptype_RowRenderer : PropTypes.shape(bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);\n },\n\n\n /** Number of rows in list. */\n rowCount: PropTypes.number.isRequired,\n\n\n /** See Grid#scrollToAlignment */\n scrollToAlignment: function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === 'function' ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number.isRequired,\n\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n\n /** Optional inline style */\n style: PropTypes.object.isRequired,\n\n\n /** Tab index for focus */\n tabIndex: PropTypes.number,\n\n\n /** Width of list */\n width: PropTypes.number.isRequired\n};\nexport default List;\nimport { bpfrpt_proptype_NoContentRenderer } from '../Grid';\nimport { bpfrpt_proptype_Alignment } from '../Grid';\nimport { bpfrpt_proptype_CellSize } from '../Grid';\nimport { bpfrpt_proptype_CellPosition } from '../Grid';\nimport { bpfrpt_proptype_OverscanIndicesGetter } from '../Grid';\nimport { bpfrpt_proptype_RenderedSection } from '../Grid';\nimport { bpfrpt_proptype_CellRendererParams } from '../Grid';\nimport { bpfrpt_proptype_Scroll as bpfrpt_proptype_GridScroll } from '../Grid';\nimport { bpfrpt_proptype_RowRenderer } from './types';\nimport { bpfrpt_proptype_RenderedRows } from './types';\nimport { bpfrpt_proptype_Scroll } from './types';\nimport PropTypes from 'prop-types';","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/binary-search-bounds\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\n\nfunction _GEA(a, l, h, y) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x >= y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction _GEP(a, l, h, y, c) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchGE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _GTA(a, l, h, y) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x > y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction _GTP(a, l, h, y, c) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchGT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _LTA(a, l, h, y) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x < y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction _LTP(a, l, h, y, c) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchLT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _LEA(a, l, h, y) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x <= y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction _LEP(a, l, h, y, c) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (c(x, y) <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n}\nfunction dispatchBsearchLE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _EQA(a, l, h, y) {\n l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n if (x === y) {\n return m;\n } else if (x <= y) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n}\nfunction _EQP(a, l, h, y, c) {\n l - 1;\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n var p = c(x, y);\n if (p === 0) {\n return m;\n } else if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n}\nfunction dispatchBsearchEQ(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nexport default {\n ge: dispatchBsearchGE,\n gt: dispatchBsearchGT,\n lt: dispatchBsearchLT,\n le: dispatchBsearchLE,\n eq: dispatchBsearchEQ\n};","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/interval-tree-1d\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\n\nimport bounds from './binarySearchBounds';\n\nvar NOT_FOUND = 0;\nvar SUCCESS = 1;\nvar EMPTY = 2;\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid;\n this.left = left;\n this.right = right;\n this.leftPoints = leftPoints;\n this.rightPoints = rightPoints;\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n}\n\nvar proto = IntervalTreeNode.prototype;\n\nfunction copy(a, b) {\n a.mid = b.mid;\n a.left = b.left;\n a.right = b.right;\n a.leftPoints = b.leftPoints;\n a.rightPoints = b.rightPoints;\n a.count = b.count;\n}\n\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals);\n node.mid = ntree.mid;\n node.left = ntree.left;\n node.right = ntree.right;\n node.leftPoints = ntree.leftPoints;\n node.rightPoints = ntree.rightPoints;\n node.count = ntree.count;\n}\n\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([]);\n intervals.push(interval);\n rebuild(node, intervals);\n}\n\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([]);\n var idx = intervals.indexOf(interval);\n if (idx < 0) {\n return NOT_FOUND;\n }\n intervals.splice(idx, 1);\n rebuild(node, intervals);\n return SUCCESS;\n}\n\nproto.intervals = function (result) {\n result.push.apply(result, this.leftPoints);\n if (this.left) {\n this.left.intervals(result);\n }\n if (this.right) {\n this.right.intervals(result);\n }\n return result;\n};\n\nproto.insert = function (interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n if (interval[1] < this.mid) {\n if (this.left) {\n if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.left.insert(interval);\n }\n } else {\n this.left = createIntervalTree([interval]);\n }\n } else if (interval[0] > this.mid) {\n if (this.right) {\n if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.right.insert(interval);\n }\n } else {\n this.right = createIntervalTree([interval]);\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin);\n var r = bounds.ge(this.rightPoints, interval, compareEnd);\n this.leftPoints.splice(l, 0, interval);\n this.rightPoints.splice(r, 0, interval);\n }\n};\n\nproto.remove = function (interval) {\n var weight = this.count - this.leftPoints;\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n var rw = this.right ? this.right.count : 0;\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.left.remove(interval);\n if (r === EMPTY) {\n this.left = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n var lw = this.left ? this.left.count : 0;\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.right.remove(interval);\n if (r === EMPTY) {\n this.right = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else {\n if (this.count === 1) {\n if (this.leftPoints[0] === interval) {\n return EMPTY;\n } else {\n return NOT_FOUND;\n }\n }\n if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if (this.left && this.right) {\n var p = this;\n var n = this.left;\n while (n.right) {\n p = n;\n n = n.right;\n }\n if (p === this) {\n n.right = this.right;\n } else {\n var l = this.left;\n var r = this.right;\n p.count -= n.count;\n p.right = n.left;\n n.left = l;\n n.right = r;\n }\n copy(this, n);\n this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n } else if (this.left) {\n copy(this, this.left);\n } else {\n copy(this, this.right);\n }\n return SUCCESS;\n }\n for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n if (this.leftPoints[l][0] !== interval[0]) {\n break;\n }\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n if (this.rightPoints[r][1] !== interval[1]) {\n break;\n } else if (this.rightPoints[r] === interval) {\n this.rightPoints.splice(r, 1);\n return SUCCESS;\n }\n }\n }\n }\n return NOT_FOUND;\n }\n};\n\nfunction reportLeftRange(arr, hi, cb) {\n for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\n\nfunction reportRightRange(arr, lo, cb) {\n for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\n\nfunction reportRange(arr, cb) {\n for (var i = 0; i < arr.length; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n}\n\nproto.queryPoint = function (x, cb) {\n if (x < this.mid) {\n if (this.left) {\n var r = this.left.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportLeftRange(this.leftPoints, x, cb);\n } else if (x > this.mid) {\n if (this.right) {\n var r = this.right.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportRightRange(this.rightPoints, x, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\n\nproto.queryInterval = function (lo, hi, cb) {\n if (lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb);\n } else if (lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction compareBegin(a, b) {\n var d = a[0] - b[0];\n if (d) {\n return d;\n }\n return a[1] - b[1];\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1];\n if (d) {\n return d;\n }\n return a[0] - b[0];\n}\n\nfunction createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n var pts = [];\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n pts.sort(compareNumbers);\n\n var mid = pts[pts.length >> 1];\n\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n if (s[1] < mid) {\n leftIntervals.push(s);\n } else if (mid < s[0]) {\n rightIntervals.push(s);\n } else {\n centerIntervals.push(s);\n }\n }\n\n //Split center intervals\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n\n return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);\n}\n\n//User friendly wrapper that makes it possible to support empty trees\nfunction IntervalTree(root) {\n this.root = root;\n}\n\nvar tproto = IntervalTree.prototype;\n\ntproto.insert = function (interval) {\n if (this.root) {\n this.root.insert(interval);\n } else {\n this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n }\n};\n\ntproto.remove = function (interval) {\n if (this.root) {\n var r = this.root.remove(interval);\n if (r === EMPTY) {\n this.root = null;\n }\n return r !== NOT_FOUND;\n }\n return false;\n};\n\ntproto.queryPoint = function (p, cb) {\n if (this.root) {\n return this.root.queryPoint(p, cb);\n }\n};\n\ntproto.queryInterval = function (lo, hi, cb) {\n if (lo <= hi && this.root) {\n return this.root.queryInterval(lo, hi, cb);\n }\n};\n\nObject.defineProperty(tproto, 'count', {\n get: function get() {\n if (this.root) {\n return this.root.count;\n }\n return 0;\n }\n});\n\nObject.defineProperty(tproto, 'intervals', {\n get: function get() {\n if (this.root) {\n return this.root.intervals([]);\n }\n return [];\n }\n});\n\nexport default function createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\n return new IntervalTree(createIntervalTree(intervals));\n}","import _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport createIntervalTree from '../vendor/intervalTree';\n\n// Position cache requirements:\n// O(log(n)) lookup of cells to render for a given viewport size\n// O(1) lookup of shortest measured column (so we know when to enter phase 1)\nvar PositionCache = function () {\n function PositionCache() {\n _classCallCheck(this, PositionCache);\n\n this._columnSizeMap = {};\n this._intervalTree = createIntervalTree();\n this._leftMap = {};\n }\n // Tracks the height of each column\n\n\n // Store tops and bottoms of each cell for fast intersection lookup.\n\n\n // Maps cell index to x coordinates for quick lookup.\n\n\n _createClass(PositionCache, [{\n key: 'estimateTotalHeight',\n value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {\n var unmeasuredCellCount = cellCount - this.count;\n return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;\n }\n\n // Render all cells visible within the viewport range defined.\n\n }, {\n key: 'range',\n value: function range(scrollTop, clientHeight, renderCallback) {\n var _this = this;\n\n this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n top = _ref2[0],\n _ = _ref2[1],\n index = _ref2[2];\n\n return renderCallback(index, _this._leftMap[index], top);\n });\n }\n }, {\n key: 'setPosition',\n value: function setPosition(index, left, top, height) {\n this._intervalTree.insert([top, top + height, index]);\n this._leftMap[index] = left;\n\n var columnSizeMap = this._columnSizeMap;\n var columnHeight = columnSizeMap[left];\n if (columnHeight === undefined) {\n columnSizeMap[left] = top + height;\n } else {\n columnSizeMap[left] = Math.max(columnHeight, top + height);\n }\n }\n }, {\n key: 'count',\n get: function get() {\n return this._intervalTree.count;\n }\n }, {\n key: 'shortestColumnSize',\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n\n var size = 0;\n\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = size === 0 ? height : Math.min(size, height);\n }\n\n return size;\n }\n }, {\n key: 'tallestColumnSize',\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n\n var size = 0;\n\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = Math.max(size, height);\n }\n\n return size;\n }\n }]);\n\n return PositionCache;\n}();\n\nexport default PositionCache;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport cn from 'classnames';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport PositionCache from './PositionCache';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\n\nvar emptyObject = {};\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n\n/**\n * This component efficiently displays arbitrarily positioned cells using windowing techniques.\n * Cell position is determined by an injected `cellPositioner` property.\n * Windowing is vertical; this component does not support horizontal scrolling.\n *\n * Rendering occurs in two phases:\n * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.\n * Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.\n * After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells\n * in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).\n * All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.\n * 2) Second pass uses the external `cellPositioner` to layout cells.\n * At this time the positioner has access to cached size measurements for all cells.\n * The positions it returns are cached by Masonry for fast access later.\n * Phase one is repeated if the user scrolls beyond the current layout's bounds.\n * If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.\n *\n * Animation constraints:\n * Simple animations are supported (eg translate/slide into place on initial reveal).\n * More complex animations are not (eg flying from one position to another on resize).\n *\n * Layout constraints:\n * This component supports multi-column layout.\n * The height of each item may vary.\n * The width of each item must not exceed the width of the column it is \"in\".\n * The left position of all items within a column must align.\n * (Items may not span multiple columns.)\n */\n\nvar Masonry = function (_React$PureComponent) {\n _inherits(Masonry, _React$PureComponent);\n\n function Masonry() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Masonry);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Masonry.__proto__ || _Object$getPrototypeOf(Masonry)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n isScrolling: false,\n scrollTop: 0\n }, _this._invalidateOnUpdateStartIndex = null, _this._invalidateOnUpdateStopIndex = null, _this._positionCache = new PositionCache(), _this._startIndex = null, _this._startIndexMemoized = null, _this._stopIndex = null, _this._stopIndexMemoized = null, _this._debounceResetIsScrollingCallback = function () {\n _this.setState({\n isScrolling: false\n });\n }, _this._setScrollingContainerRef = function (ref) {\n _this._scrollingContainer = ref;\n }, _this._onScroll = function (event) {\n var height = _this.props.height;\n\n\n var eventScrollTop = event.target.scrollTop;\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop);\n\n // On iOS, we can arrive at negative offsets by swiping past the start or end.\n // Avoid re-rendering in this case as it can cause problems; see #532 for more.\n if (eventScrollTop !== scrollTop) {\n return;\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n _this._debounceResetIsScrolling();\n\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n if (_this.state.scrollTop !== scrollTop) {\n _this.setState({\n isScrolling: true,\n scrollTop: scrollTop\n });\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Masonry, [{\n key: 'clearCellPositions',\n value: function clearCellPositions() {\n this._positionCache = new PositionCache();\n this.forceUpdate();\n }\n\n // HACK This method signature was intended for Grid\n\n }, {\n key: 'invalidateCellSizeAfterRender',\n value: function invalidateCellSizeAfterRender(_ref2) {\n var index = _ref2.rowIndex;\n\n if (this._invalidateOnUpdateStartIndex === null) {\n this._invalidateOnUpdateStartIndex = index;\n this._invalidateOnUpdateStopIndex = index;\n } else {\n this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);\n this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);\n }\n }\n }, {\n key: 'recomputeCellPositions',\n value: function recomputeCellPositions() {\n var stopIndex = this._positionCache.count - 1;\n\n this._positionCache = new PositionCache();\n this._populatePositionCache(0, stopIndex);\n\n this.forceUpdate();\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._checkInvalidateOnUpdate();\n this._invokeOnScrollCallback();\n this._invokeOnCellsRenderedCallback();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n this._checkInvalidateOnUpdate();\n this._invokeOnScrollCallback();\n this._invokeOnCellsRenderedCallback();\n\n if (this.props.scrollTop !== prevProps.scrollTop) {\n this._debounceResetIsScrolling();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n autoHeight = _props.autoHeight,\n cellCount = _props.cellCount,\n cellMeasurerCache = _props.cellMeasurerCache,\n cellRenderer = _props.cellRenderer,\n className = _props.className,\n height = _props.height,\n id = _props.id,\n keyMapper = _props.keyMapper,\n overscanByPixels = _props.overscanByPixels,\n role = _props.role,\n style = _props.style,\n tabIndex = _props.tabIndex,\n width = _props.width,\n rowDirection = _props.rowDirection;\n var _state = this.state,\n isScrolling = _state.isScrolling,\n scrollTop = _state.scrollTop;\n\n\n var children = [];\n\n var estimateTotalHeight = this._getEstimatedTotalHeight();\n\n var shortestColumnSize = this._positionCache.shortestColumnSize;\n var measuredCellCount = this._positionCache.count;\n\n var startIndex = 0;\n var stopIndex = void 0;\n\n this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {\n var _style;\n\n if (typeof stopIndex === 'undefined') {\n startIndex = index;\n stopIndex = index;\n } else {\n startIndex = Math.min(startIndex, index);\n stopIndex = Math.max(stopIndex, index);\n }\n\n children.push(cellRenderer({\n index: index,\n isScrolling: isScrolling,\n key: keyMapper(index),\n parent: _this2,\n style: (_style = {\n height: cellMeasurerCache.getHeight(index)\n }, _defineProperty(_style, rowDirection === 'ltr' ? 'left' : 'right', left), _defineProperty(_style, 'position', 'absolute'), _defineProperty(_style, 'top', top), _defineProperty(_style, 'width', cellMeasurerCache.getWidth(index)), _style)\n }));\n });\n\n // We need to measure additional cells for this layout\n if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {\n var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));\n\n for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {\n stopIndex = _index;\n\n children.push(cellRenderer({\n index: _index,\n isScrolling: isScrolling,\n key: keyMapper(_index),\n parent: this,\n style: {\n width: cellMeasurerCache.getWidth(_index)\n }\n }));\n }\n }\n\n this._startIndex = startIndex;\n this._stopIndex = stopIndex;\n\n return React.createElement(\n 'div',\n {\n ref: this._setScrollingContainerRef,\n 'aria-label': this.props['aria-label'],\n className: cn('ReactVirtualized__Masonry', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _extends({\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n overflowX: 'hidden',\n overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',\n position: 'relative',\n width: width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n }, style),\n tabIndex: tabIndex },\n React.createElement(\n 'div',\n {\n className: 'ReactVirtualized__Masonry__innerScrollContainer',\n style: {\n width: '100%',\n height: estimateTotalHeight,\n maxWidth: '100%',\n maxHeight: estimateTotalHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n } },\n children\n )\n );\n }\n }, {\n key: '_checkInvalidateOnUpdate',\n value: function _checkInvalidateOnUpdate() {\n if (typeof this._invalidateOnUpdateStartIndex === 'number') {\n var _startIndex = this._invalidateOnUpdateStartIndex;\n var _stopIndex = this._invalidateOnUpdateStopIndex;\n\n this._invalidateOnUpdateStartIndex = null;\n this._invalidateOnUpdateStopIndex = null;\n\n // Query external layout logic for position of newly-measured cells\n this._populatePositionCache(_startIndex, _stopIndex);\n\n this.forceUpdate();\n }\n }\n }, {\n key: '_debounceResetIsScrolling',\n value: function _debounceResetIsScrolling() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n\n this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);\n }\n }, {\n key: '_getEstimatedTotalHeight',\n value: function _getEstimatedTotalHeight() {\n var _props2 = this.props,\n cellCount = _props2.cellCount,\n cellMeasurerCache = _props2.cellMeasurerCache,\n width = _props2.width;\n\n\n var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));\n\n return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);\n }\n }, {\n key: '_invokeOnScrollCallback',\n value: function _invokeOnScrollCallback() {\n var _props3 = this.props,\n height = _props3.height,\n onScroll = _props3.onScroll;\n var scrollTop = this.state.scrollTop;\n\n\n if (this._onScrollMemoized !== scrollTop) {\n onScroll({\n clientHeight: height,\n scrollHeight: this._getEstimatedTotalHeight(),\n scrollTop: scrollTop\n });\n\n this._onScrollMemoized = scrollTop;\n }\n }\n }, {\n key: '_invokeOnCellsRenderedCallback',\n value: function _invokeOnCellsRenderedCallback() {\n if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {\n var _onCellsRendered = this.props.onCellsRendered;\n\n\n _onCellsRendered({\n startIndex: this._startIndex,\n stopIndex: this._stopIndex\n });\n\n this._startIndexMemoized = this._startIndex;\n this._stopIndexMemoized = this._stopIndex;\n }\n }\n }, {\n key: '_populatePositionCache',\n value: function _populatePositionCache(startIndex, stopIndex) {\n var _props4 = this.props,\n cellMeasurerCache = _props4.cellMeasurerCache,\n cellPositioner = _props4.cellPositioner;\n\n\n for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {\n var _cellPositioner = cellPositioner(_index2),\n _left = _cellPositioner.left,\n _top = _cellPositioner.top;\n\n this._positionCache.setPosition(_index2, _left, _top, cellMeasurerCache.getHeight(_index2));\n }\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {\n return {\n isScrolling: true,\n scrollTop: nextProps.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return Masonry;\n}(React.PureComponent);\n\nMasonry.defaultProps = {\n autoHeight: false,\n keyMapper: identity,\n onCellsRendered: noop,\n onScroll: noop,\n overscanByPixels: 20,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n style: emptyObject,\n tabIndex: 0,\n rowDirection: 'ltr'\n};\nMasonry.propTypes = process.env.NODE_ENV === 'production' ? null : {\n autoHeight: PropTypes.bool.isRequired,\n cellCount: PropTypes.number.isRequired,\n cellMeasurerCache: function cellMeasurerCache() {\n return (typeof CellMeasurerCache === 'function' ? PropTypes.instanceOf(CellMeasurerCache).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n cellPositioner: function cellPositioner() {\n return (typeof Positioner === 'function' ? PropTypes.instanceOf(Positioner).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n cellRenderer: function cellRenderer() {\n return (typeof CellRenderer === 'function' ? PropTypes.instanceOf(CellRenderer).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n className: PropTypes.string,\n height: PropTypes.number.isRequired,\n id: PropTypes.string,\n keyMapper: function keyMapper() {\n return (typeof KeyMapper === 'function' ? PropTypes.instanceOf(KeyMapper).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n onCellsRendered: function onCellsRendered() {\n return (typeof OnCellsRenderedCallback === 'function' ? PropTypes.instanceOf(OnCellsRenderedCallback) : PropTypes.any).apply(this, arguments);\n },\n onScroll: function onScroll() {\n return (typeof OnScrollCallback === 'function' ? PropTypes.instanceOf(OnScrollCallback) : PropTypes.any).apply(this, arguments);\n },\n overscanByPixels: PropTypes.number.isRequired,\n role: PropTypes.string.isRequired,\n scrollingResetTimeInterval: PropTypes.number.isRequired,\n style: function style(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error('Prop `' + propName + '` has type \\'any\\' or \\'mixed\\', but was not provided to `' + componentName + '`. Pass undefined or any other value.');\n }\n },\n tabIndex: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n rowDirection: PropTypes.string.isRequired\n};\n\n\nfunction identity(value) {\n return value;\n}\n\nfunction noop() {}\n\nvar bpfrpt_proptype_CellMeasurerCache = process.env.NODE_ENV === 'production' ? null : {\n defaultHeight: PropTypes.number.isRequired,\n defaultWidth: PropTypes.number.isRequired,\n getHeight: PropTypes.func.isRequired,\n getWidth: PropTypes.func.isRequired\n};\n\n\npolyfill(Masonry);\n\nexport default Masonry;\n\nvar bpfrpt_proptype_Positioner = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nimport { bpfrpt_proptype_AnimationTimeoutId } from '../utils/requestAnimationTimeout';\nimport PropTypes from 'prop-types';\nexport { bpfrpt_proptype_CellMeasurerCache };\nexport { bpfrpt_proptype_Positioner };","\n\nexport default function createCellPositioner(_ref) {\n var cellMeasurerCache = _ref.cellMeasurerCache,\n columnCount = _ref.columnCount,\n columnWidth = _ref.columnWidth,\n _ref$spacer = _ref.spacer,\n spacer = _ref$spacer === undefined ? 0 : _ref$spacer;\n\n var columnHeights = void 0;\n\n initOrResetDerivedValues();\n\n function cellPositioner(index) {\n // Find the shortest column and use it.\n var columnIndex = 0;\n for (var i = 1; i < columnHeights.length; i++) {\n if (columnHeights[i] < columnHeights[columnIndex]) {\n columnIndex = i;\n }\n }\n\n var left = columnIndex * (columnWidth + spacer);\n var top = columnHeights[columnIndex] || 0;\n\n columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer;\n\n return {\n left: left,\n top: top\n };\n }\n\n function initOrResetDerivedValues() {\n // Track the height of each column.\n // Layout algorithm below always inserts into the shortest column.\n columnHeights = [];\n for (var i = 0; i < columnCount; i++) {\n columnHeights[i] = 0;\n }\n }\n\n function reset(params) {\n columnCount = params.columnCount;\n columnWidth = params.columnWidth;\n spacer = params.spacer;\n\n initOrResetDerivedValues();\n }\n\n cellPositioner.reset = reset;\n\n return cellPositioner;\n}\nimport { bpfrpt_proptype_CellMeasurerCache } from './Masonry';\nimport { bpfrpt_proptype_Positioner } from './Masonry';","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport { CellMeasurerCache } from '../CellMeasurer';\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCacheDecorator = function () {\n function CellMeasurerCacheDecorator() {\n var _this = this;\n\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, CellMeasurerCacheDecorator);\n\n this.columnWidth = function (_ref) {\n var index = _ref.index;\n\n _this._cellMeasurerCache.columnWidth({\n index: index + _this._columnIndexOffset\n });\n };\n\n this.rowHeight = function (_ref2) {\n var index = _ref2.index;\n\n _this._cellMeasurerCache.rowHeight({\n index: index + _this._rowIndexOffset\n });\n };\n\n var cellMeasurerCache = params.cellMeasurerCache,\n _params$columnIndexOf = params.columnIndexOffset,\n columnIndexOffset = _params$columnIndexOf === undefined ? 0 : _params$columnIndexOf,\n _params$rowIndexOffse = params.rowIndexOffset,\n rowIndexOffset = _params$rowIndexOffse === undefined ? 0 : _params$rowIndexOffse;\n\n\n this._cellMeasurerCache = cellMeasurerCache;\n this._columnIndexOffset = columnIndexOffset;\n this._rowIndexOffset = rowIndexOffset;\n }\n\n _createClass(CellMeasurerCacheDecorator, [{\n key: 'clear',\n value: function clear(rowIndex, columnIndex) {\n this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: 'clearAll',\n value: function clearAll() {\n this._cellMeasurerCache.clearAll();\n }\n }, {\n key: 'hasFixedHeight',\n value: function hasFixedHeight() {\n return this._cellMeasurerCache.hasFixedHeight();\n }\n }, {\n key: 'hasFixedWidth',\n value: function hasFixedWidth() {\n return this._cellMeasurerCache.hasFixedWidth();\n }\n }, {\n key: 'getHeight',\n value: function getHeight(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: 'getWidth',\n value: function getWidth(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: 'has',\n value: function has(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: 'set',\n value: function set(rowIndex, columnIndex, width, height) {\n this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);\n }\n }, {\n key: 'defaultHeight',\n get: function get() {\n return this._cellMeasurerCache.defaultHeight;\n }\n }, {\n key: 'defaultWidth',\n get: function get() {\n return this._cellMeasurerCache.defaultWidth;\n }\n }]);\n\n return CellMeasurerCacheDecorator;\n}();\n\nexport default CellMeasurerCacheDecorator;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport CellMeasurerCacheDecorator from './CellMeasurerCacheDecorator';\nimport Grid from '../Grid';\n\nvar SCROLLBAR_SIZE_BUFFER = 20;\n\n/**\n * Renders 1, 2, or 4 Grids depending on configuration.\n * A main (body) Grid will always be rendered.\n * Optionally, 1-2 Grids for sticky header rows will also be rendered.\n * If no sticky columns, only 1 sticky header Grid will be rendered.\n * If sticky columns, 2 sticky header Grids will be rendered.\n */\n\nvar MultiGrid = function (_React$PureComponent) {\n _inherits(MultiGrid, _React$PureComponent);\n\n function MultiGrid(props, context) {\n _classCallCheck(this, MultiGrid);\n\n var _this = _possibleConstructorReturn(this, (MultiGrid.__proto__ || _Object$getPrototypeOf(MultiGrid)).call(this, props, context));\n\n _initialiseProps.call(_this);\n\n var deferredMeasurementCache = props.deferredMeasurementCache,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount;\n\n\n _this._maybeCalculateCachedStyles(true);\n\n if (deferredMeasurementCache) {\n _this._deferredMeasurementCacheBottomLeftGrid = fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: 0,\n rowIndexOffset: fixedRowCount\n }) : deferredMeasurementCache;\n\n _this._deferredMeasurementCacheBottomRightGrid = fixedColumnCount > 0 || fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: fixedColumnCount,\n rowIndexOffset: fixedRowCount\n }) : deferredMeasurementCache;\n\n _this._deferredMeasurementCacheTopRightGrid = fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: fixedColumnCount,\n rowIndexOffset: 0\n }) : deferredMeasurementCache;\n }\n return _this;\n }\n\n _createClass(MultiGrid, [{\n key: 'forceUpdateGrids',\n value: function forceUpdateGrids() {\n this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();\n this._bottomRightGrid && this._bottomRightGrid.forceUpdate();\n this._topLeftGrid && this._topLeftGrid.forceUpdate();\n this._topRightGrid && this._topRightGrid.forceUpdate();\n }\n\n /** See Grid#invalidateCellSizeAfterRender */\n\n }, {\n key: 'invalidateCellSizeAfterRender',\n value: function invalidateCellSizeAfterRender() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$columnIndex = _ref.columnIndex,\n columnIndex = _ref$columnIndex === undefined ? 0 : _ref$columnIndex,\n _ref$rowIndex = _ref.rowIndex,\n rowIndex = _ref$rowIndex === undefined ? 0 : _ref$rowIndex;\n\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n\n /** See Grid#measureAllCells */\n\n }, {\n key: 'measureAllCells',\n value: function measureAllCells() {\n this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();\n this._bottomRightGrid && this._bottomRightGrid.measureAllCells();\n this._topLeftGrid && this._topLeftGrid.measureAllCells();\n this._topRightGrid && this._topRightGrid.measureAllCells();\n }\n\n /** See Grid#recomputeGridSize */\n\n }, {\n key: 'recomputeGridSize',\n value: function recomputeGridSize() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$columnIndex = _ref2.columnIndex,\n columnIndex = _ref2$columnIndex === undefined ? 0 : _ref2$columnIndex,\n _ref2$rowIndex = _ref2.rowIndex,\n rowIndex = _ref2$rowIndex === undefined ? 0 : _ref2$rowIndex;\n\n var _props = this.props,\n fixedColumnCount = _props.fixedColumnCount,\n fixedRowCount = _props.fixedRowCount;\n\n\n var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);\n var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);\n\n this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: adjustedRowIndex\n });\n this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: adjustedRowIndex\n });\n this._topLeftGrid && this._topLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this._topRightGrid && this._topRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: rowIndex\n });\n\n this._leftGridWidth = null;\n this._topGridHeight = null;\n this._maybeCalculateCachedStyles(true);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props2 = this.props,\n scrollLeft = _props2.scrollLeft,\n scrollTop = _props2.scrollTop;\n\n\n if (scrollLeft > 0 || scrollTop > 0) {\n var newState = {};\n\n if (scrollLeft > 0) {\n newState.scrollLeft = scrollLeft;\n }\n\n if (scrollTop > 0) {\n newState.scrollTop = scrollTop;\n }\n\n this.setState(newState);\n }\n this._handleInvalidatedGridSize();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this._handleInvalidatedGridSize();\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n onScroll = _props3.onScroll,\n onSectionRendered = _props3.onSectionRendered,\n onScrollbarPresenceChange = _props3.onScrollbarPresenceChange,\n scrollLeftProp = _props3.scrollLeft,\n scrollToColumn = _props3.scrollToColumn,\n scrollTopProp = _props3.scrollTop,\n scrollToRow = _props3.scrollToRow,\n rest = _objectWithoutProperties(_props3, ['onScroll', 'onSectionRendered', 'onScrollbarPresenceChange', 'scrollLeft', 'scrollToColumn', 'scrollTop', 'scrollToRow']);\n\n this._prepareForRender();\n\n // Don't render any of our Grids if there are no cells.\n // This mirrors what Grid does,\n // And prevents us from recording inaccurage measurements when used with CellMeasurer.\n if (this.props.width === 0 || this.props.height === 0) {\n return null;\n }\n\n // scrollTop and scrollLeft props are explicitly filtered out and ignored\n\n var _state = this.state,\n scrollLeft = _state.scrollLeft,\n scrollTop = _state.scrollTop;\n\n\n return React.createElement(\n 'div',\n { style: this._containerOuterStyle },\n React.createElement(\n 'div',\n { style: this._containerTopStyle },\n this._renderTopLeftGrid(rest),\n this._renderTopRightGrid(_extends({}, rest, {\n onScroll: onScroll,\n scrollLeft: scrollLeft\n }))\n ),\n React.createElement(\n 'div',\n { style: this._containerBottomStyle },\n this._renderBottomLeftGrid(_extends({}, rest, {\n onScroll: onScroll,\n scrollTop: scrollTop\n })),\n this._renderBottomRightGrid(_extends({}, rest, {\n onScroll: onScroll,\n onSectionRendered: onSectionRendered,\n scrollLeft: scrollLeft,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow,\n scrollTop: scrollTop\n }))\n )\n );\n }\n }, {\n key: '_getBottomGridHeight',\n value: function _getBottomGridHeight(props) {\n var height = props.height;\n\n\n var topGridHeight = this._getTopGridHeight(props);\n\n return height - topGridHeight;\n }\n }, {\n key: '_getLeftGridWidth',\n value: function _getLeftGridWidth(props) {\n var fixedColumnCount = props.fixedColumnCount,\n columnWidth = props.columnWidth;\n\n\n if (this._leftGridWidth == null) {\n if (typeof columnWidth === 'function') {\n var leftGridWidth = 0;\n\n for (var index = 0; index < fixedColumnCount; index++) {\n leftGridWidth += columnWidth({ index: index });\n }\n\n this._leftGridWidth = leftGridWidth;\n } else {\n this._leftGridWidth = columnWidth * fixedColumnCount;\n }\n }\n\n return this._leftGridWidth;\n }\n }, {\n key: '_getRightGridWidth',\n value: function _getRightGridWidth(props) {\n var width = props.width;\n\n\n var leftGridWidth = this._getLeftGridWidth(props);\n\n return width - leftGridWidth;\n }\n }, {\n key: '_getTopGridHeight',\n value: function _getTopGridHeight(props) {\n var fixedRowCount = props.fixedRowCount,\n rowHeight = props.rowHeight;\n\n\n if (this._topGridHeight == null) {\n if (typeof rowHeight === 'function') {\n var topGridHeight = 0;\n\n for (var index = 0; index < fixedRowCount; index++) {\n topGridHeight += rowHeight({ index: index });\n }\n\n this._topGridHeight = topGridHeight;\n } else {\n this._topGridHeight = rowHeight * fixedRowCount;\n }\n }\n\n return this._topGridHeight;\n }\n }, {\n key: '_handleInvalidatedGridSize',\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this.forceUpdate();\n }\n }\n\n /**\n * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.\n * This method recalculates styles only when specific props change.\n */\n\n }, {\n key: '_maybeCalculateCachedStyles',\n value: function _maybeCalculateCachedStyles(resetAll) {\n var _props4 = this.props,\n columnWidth = _props4.columnWidth,\n enableFixedColumnScroll = _props4.enableFixedColumnScroll,\n enableFixedRowScroll = _props4.enableFixedRowScroll,\n height = _props4.height,\n fixedColumnCount = _props4.fixedColumnCount,\n fixedRowCount = _props4.fixedRowCount,\n rowHeight = _props4.rowHeight,\n style = _props4.style,\n styleBottomLeftGrid = _props4.styleBottomLeftGrid,\n styleBottomRightGrid = _props4.styleBottomRightGrid,\n styleTopLeftGrid = _props4.styleTopLeftGrid,\n styleTopRightGrid = _props4.styleTopRightGrid,\n width = _props4.width;\n\n\n var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;\n var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;\n var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;\n\n if (resetAll || sizeChange || style !== this._lastRenderedStyle) {\n this._containerOuterStyle = _extends({\n height: height,\n overflow: 'visible', // Let :focus outline show through\n width: width\n }, style);\n }\n\n if (resetAll || sizeChange || topSizeChange) {\n this._containerTopStyle = {\n height: this._getTopGridHeight(this.props),\n position: 'relative',\n width: width\n };\n\n this._containerBottomStyle = {\n height: height - this._getTopGridHeight(this.props),\n overflow: 'visible', // Let :focus outline show through\n position: 'relative',\n width: width\n };\n }\n\n if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {\n this._bottomLeftGridStyle = _extends({\n left: 0,\n overflowX: 'hidden',\n overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',\n position: 'absolute'\n }, styleBottomLeftGrid);\n }\n\n if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {\n this._bottomRightGridStyle = _extends({\n left: this._getLeftGridWidth(this.props),\n position: 'absolute'\n }, styleBottomRightGrid);\n }\n\n if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {\n this._topLeftGridStyle = _extends({\n left: 0,\n overflowX: 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopLeftGrid);\n }\n\n if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {\n this._topRightGridStyle = _extends({\n left: this._getLeftGridWidth(this.props),\n overflowX: enableFixedRowScroll ? 'auto' : 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopRightGrid);\n }\n\n this._lastRenderedColumnWidth = columnWidth;\n this._lastRenderedFixedColumnCount = fixedColumnCount;\n this._lastRenderedFixedRowCount = fixedRowCount;\n this._lastRenderedHeight = height;\n this._lastRenderedRowHeight = rowHeight;\n this._lastRenderedStyle = style;\n this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;\n this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;\n this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;\n this._lastRenderedStyleTopRightGrid = styleTopRightGrid;\n this._lastRenderedWidth = width;\n }\n }, {\n key: '_prepareForRender',\n value: function _prepareForRender() {\n if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {\n this._leftGridWidth = null;\n }\n\n if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {\n this._topGridHeight = null;\n }\n\n this._maybeCalculateCachedStyles();\n\n this._lastRenderedColumnWidth = this.props.columnWidth;\n this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;\n this._lastRenderedFixedRowCount = this.props.fixedRowCount;\n this._lastRenderedRowHeight = this.props.rowHeight;\n }\n }, {\n key: '_renderBottomLeftGrid',\n value: function _renderBottomLeftGrid(props) {\n var enableFixedColumnScroll = props.enableFixedColumnScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;\n var showVerticalScrollbar = this.state.showVerticalScrollbar;\n\n\n if (!fixedColumnCount) {\n return null;\n }\n\n var additionalRowCount = showVerticalScrollbar ? 1 : 0,\n height = this._getBottomGridHeight(props),\n width = this._getLeftGridWidth(props),\n scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,\n gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;\n\n var bottomLeftGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomLeftGrid,\n className: this.props.classNameBottomLeftGrid,\n columnCount: fixedColumnCount,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,\n height: height,\n onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,\n ref: this._bottomLeftGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,\n rowHeight: this._rowHeightBottomGrid,\n style: this._bottomLeftGridStyle,\n tabIndex: null,\n width: gridWidth\n }));\n\n if (hideBottomLeftGridScrollbar) {\n return React.createElement(\n 'div',\n {\n className: 'BottomLeftGrid_ScrollWrapper',\n style: _extends({}, this._bottomLeftGridStyle, {\n height: height,\n width: width,\n overflowY: 'hidden'\n }) },\n bottomLeftGrid\n );\n }\n return bottomLeftGrid;\n }\n }, {\n key: '_renderBottomRightGrid',\n value: function _renderBottomRightGrid(props) {\n var columnCount = props.columnCount,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n scrollToColumn = props.scrollToColumn,\n scrollToRow = props.scrollToRow;\n\n\n return React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomRightGrid,\n className: this.props.classNameBottomRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount),\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,\n height: this._getBottomGridHeight(props),\n onScroll: this._onScroll,\n onScrollbarPresenceChange: this._onScrollbarPresenceChange,\n ref: this._bottomRightGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount),\n rowHeight: this._rowHeightBottomGrid,\n scrollToColumn: scrollToColumn - fixedColumnCount,\n scrollToRow: scrollToRow - fixedRowCount,\n style: this._bottomRightGridStyle,\n width: this._getRightGridWidth(props)\n }));\n }\n }, {\n key: '_renderTopLeftGrid',\n value: function _renderTopLeftGrid(props) {\n var fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount;\n\n\n if (!fixedColumnCount || !fixedRowCount) {\n return null;\n }\n\n return React.createElement(Grid, _extends({}, props, {\n className: this.props.classNameTopLeftGrid,\n columnCount: fixedColumnCount,\n height: this._getTopGridHeight(props),\n ref: this._topLeftGridRef,\n rowCount: fixedRowCount,\n style: this._topLeftGridStyle,\n tabIndex: null,\n width: this._getLeftGridWidth(props)\n }));\n }\n }, {\n key: '_renderTopRightGrid',\n value: function _renderTopRightGrid(props) {\n var columnCount = props.columnCount,\n enableFixedRowScroll = props.enableFixedRowScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n scrollLeft = props.scrollLeft,\n hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;\n var _state2 = this.state,\n showHorizontalScrollbar = _state2.showHorizontalScrollbar,\n scrollbarSize = _state2.scrollbarSize;\n\n\n if (!fixedRowCount) {\n return null;\n }\n\n var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,\n height = this._getTopGridHeight(props),\n width = this._getRightGridWidth(props),\n additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;\n\n var gridHeight = height,\n style = this._topRightGridStyle;\n\n if (hideTopRightGridScrollbar) {\n gridHeight = height + additionalHeight;\n style = _extends({}, this._topRightGridStyle, {\n left: 0\n });\n }\n\n var topRightGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererTopRightGrid,\n className: this.props.classNameTopRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,\n height: gridHeight,\n onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,\n ref: this._topRightGridRef,\n rowCount: fixedRowCount,\n scrollLeft: scrollLeft,\n style: style,\n tabIndex: null,\n width: width\n }));\n\n if (hideTopRightGridScrollbar) {\n return React.createElement(\n 'div',\n {\n className: 'TopRightGrid_ScrollWrapper',\n style: _extends({}, this._topRightGridStyle, {\n height: height,\n width: width,\n overflowX: 'hidden'\n }) },\n topRightGrid\n );\n }\n return topRightGrid;\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return MultiGrid;\n}(React.PureComponent);\n\nMultiGrid.defaultProps = {\n classNameBottomLeftGrid: '',\n classNameBottomRightGrid: '',\n classNameTopLeftGrid: '',\n classNameTopRightGrid: '',\n enableFixedColumnScroll: false,\n enableFixedRowScroll: false,\n fixedColumnCount: 0,\n fixedRowCount: 0,\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n styleBottomLeftGrid: {},\n styleBottomRightGrid: {},\n styleTopLeftGrid: {},\n styleTopRightGrid: {},\n hideTopRightGridScrollbar: false,\n hideBottomLeftGridScrollbar: false\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.state = {\n scrollLeft: 0,\n scrollTop: 0,\n scrollbarSize: 0,\n showHorizontalScrollbar: false,\n showVerticalScrollbar: false\n };\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n\n this._bottomLeftGridRef = function (ref) {\n _this2._bottomLeftGrid = ref;\n };\n\n this._bottomRightGridRef = function (ref) {\n _this2._bottomRightGrid = ref;\n };\n\n this._cellRendererBottomLeftGrid = function (_ref3) {\n var rowIndex = _ref3.rowIndex,\n rest = _objectWithoutProperties(_ref3, ['rowIndex']);\n\n var _props5 = _this2.props,\n cellRenderer = _props5.cellRenderer,\n fixedRowCount = _props5.fixedRowCount,\n rowCount = _props5.rowCount;\n\n\n if (rowIndex === rowCount - fixedRowCount) {\n return React.createElement('div', {\n key: rest.key,\n style: _extends({}, rest.style, {\n height: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_extends({}, rest, {\n parent: _this2,\n rowIndex: rowIndex + fixedRowCount\n }));\n }\n };\n\n this._cellRendererBottomRightGrid = function (_ref4) {\n var columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex,\n rest = _objectWithoutProperties(_ref4, ['columnIndex', 'rowIndex']);\n\n var _props6 = _this2.props,\n cellRenderer = _props6.cellRenderer,\n fixedColumnCount = _props6.fixedColumnCount,\n fixedRowCount = _props6.fixedRowCount;\n\n\n return cellRenderer(_extends({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _this2,\n rowIndex: rowIndex + fixedRowCount\n }));\n };\n\n this._cellRendererTopRightGrid = function (_ref5) {\n var columnIndex = _ref5.columnIndex,\n rest = _objectWithoutProperties(_ref5, ['columnIndex']);\n\n var _props7 = _this2.props,\n cellRenderer = _props7.cellRenderer,\n columnCount = _props7.columnCount,\n fixedColumnCount = _props7.fixedColumnCount;\n\n\n if (columnIndex === columnCount - fixedColumnCount) {\n return React.createElement('div', {\n key: rest.key,\n style: _extends({}, rest.style, {\n width: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_extends({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _this2\n }));\n }\n };\n\n this._columnWidthRightGrid = function (_ref6) {\n var index = _ref6.index;\n var _props8 = _this2.props,\n columnCount = _props8.columnCount,\n fixedColumnCount = _props8.fixedColumnCount,\n columnWidth = _props8.columnWidth;\n var _state3 = _this2.state,\n scrollbarSize = _state3.scrollbarSize,\n showHorizontalScrollbar = _state3.showHorizontalScrollbar;\n\n // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {\n return scrollbarSize;\n }\n\n return typeof columnWidth === 'function' ? columnWidth({ index: index + fixedColumnCount }) : columnWidth;\n };\n\n this._onScroll = function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft,\n scrollTop = scrollInfo.scrollTop;\n\n _this2.setState({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n var onScroll = _this2.props.onScroll;\n if (onScroll) {\n onScroll(scrollInfo);\n }\n };\n\n this._onScrollbarPresenceChange = function (_ref7) {\n var horizontal = _ref7.horizontal,\n size = _ref7.size,\n vertical = _ref7.vertical;\n var _state4 = _this2.state,\n showHorizontalScrollbar = _state4.showHorizontalScrollbar,\n showVerticalScrollbar = _state4.showVerticalScrollbar;\n\n\n if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {\n _this2.setState({\n scrollbarSize: size,\n showHorizontalScrollbar: horizontal,\n showVerticalScrollbar: vertical\n });\n\n var onScrollbarPresenceChange = _this2.props.onScrollbarPresenceChange;\n\n if (typeof onScrollbarPresenceChange === 'function') {\n onScrollbarPresenceChange({\n horizontal: horizontal,\n size: size,\n vertical: vertical\n });\n }\n }\n };\n\n this._onScrollLeft = function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft;\n\n _this2._onScroll({\n scrollLeft: scrollLeft,\n scrollTop: _this2.state.scrollTop\n });\n };\n\n this._onScrollTop = function (scrollInfo) {\n var scrollTop = scrollInfo.scrollTop;\n\n _this2._onScroll({\n scrollTop: scrollTop,\n scrollLeft: _this2.state.scrollLeft\n });\n };\n\n this._rowHeightBottomGrid = function (_ref8) {\n var index = _ref8.index;\n var _props9 = _this2.props,\n fixedRowCount = _props9.fixedRowCount,\n rowCount = _props9.rowCount,\n rowHeight = _props9.rowHeight;\n var _state5 = _this2.state,\n scrollbarSize = _state5.scrollbarSize,\n showVerticalScrollbar = _state5.showVerticalScrollbar;\n\n // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showVerticalScrollbar && index === rowCount - fixedRowCount) {\n return scrollbarSize;\n }\n\n return typeof rowHeight === 'function' ? rowHeight({ index: index + fixedRowCount }) : rowHeight;\n };\n\n this._topLeftGridRef = function (ref) {\n _this2._topLeftGrid = ref;\n };\n\n this._topRightGridRef = function (ref) {\n _this2._topRightGrid = ref;\n };\n};\n\nMultiGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n classNameBottomLeftGrid: PropTypes.string.isRequired,\n classNameBottomRightGrid: PropTypes.string.isRequired,\n classNameTopLeftGrid: PropTypes.string.isRequired,\n classNameTopRightGrid: PropTypes.string.isRequired,\n enableFixedColumnScroll: PropTypes.bool.isRequired,\n enableFixedRowScroll: PropTypes.bool.isRequired,\n fixedColumnCount: PropTypes.number.isRequired,\n fixedRowCount: PropTypes.number.isRequired,\n onScrollbarPresenceChange: PropTypes.func,\n style: PropTypes.object.isRequired,\n styleBottomLeftGrid: PropTypes.object.isRequired,\n styleBottomRightGrid: PropTypes.object.isRequired,\n styleTopLeftGrid: PropTypes.object.isRequired,\n styleTopRightGrid: PropTypes.object.isRequired,\n hideTopRightGridScrollbar: PropTypes.bool,\n hideBottomLeftGridScrollbar: PropTypes.bool\n} : {};\n\n\npolyfill(MultiGrid);\n\nexport default MultiGrid;","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\n\nvar ScrollSync = function (_React$PureComponent) {\n _inherits(ScrollSync, _React$PureComponent);\n\n function ScrollSync(props, context) {\n _classCallCheck(this, ScrollSync);\n\n var _this = _possibleConstructorReturn(this, (ScrollSync.__proto__ || _Object$getPrototypeOf(ScrollSync)).call(this, props, context));\n\n _this.state = {\n clientHeight: 0,\n clientWidth: 0,\n scrollHeight: 0,\n scrollLeft: 0,\n scrollTop: 0,\n scrollWidth: 0\n };\n\n _this._onScroll = _this._onScroll.bind(_this);\n return _this;\n }\n\n _createClass(ScrollSync, [{\n key: 'render',\n value: function render() {\n var children = this.props.children;\n var _state = this.state,\n clientHeight = _state.clientHeight,\n clientWidth = _state.clientWidth,\n scrollHeight = _state.scrollHeight,\n scrollLeft = _state.scrollLeft,\n scrollTop = _state.scrollTop,\n scrollWidth = _state.scrollWidth;\n\n\n return children({\n clientHeight: clientHeight,\n clientWidth: clientWidth,\n onScroll: this._onScroll,\n scrollHeight: scrollHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth\n });\n }\n }, {\n key: '_onScroll',\n value: function _onScroll(_ref) {\n var clientHeight = _ref.clientHeight,\n clientWidth = _ref.clientWidth,\n scrollHeight = _ref.scrollHeight,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n scrollWidth = _ref.scrollWidth;\n\n this.setState({\n clientHeight: clientHeight,\n clientWidth: clientWidth,\n scrollHeight: scrollHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth\n });\n }\n }]);\n\n return ScrollSync;\n}(React.PureComponent);\n\nexport default ScrollSync;\nScrollSync.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: PropTypes.func.isRequired\n} : {};","import _Object$keys from 'babel-runtime/core-js/object/keys';\n\n\nexport default function createMultiSort(sortCallback) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n defaultSortBy = _ref.defaultSortBy,\n _ref$defaultSortDirec = _ref.defaultSortDirection,\n defaultSortDirection = _ref$defaultSortDirec === undefined ? {} : _ref$defaultSortDirec;\n\n if (!sortCallback) {\n throw Error('Required parameter \"sortCallback\" not specified');\n }\n\n var sortBy = defaultSortBy || [];\n var sortDirection = {};\n\n sortBy.forEach(function (dataKey) {\n sortDirection[dataKey] = defaultSortDirection.hasOwnProperty(dataKey) ? defaultSortDirection[dataKey] : 'ASC';\n });\n\n function sort(_ref2) {\n var defaultSortDirection = _ref2.defaultSortDirection,\n event = _ref2.event,\n dataKey = _ref2.sortBy;\n\n if (event.shiftKey) {\n // Shift + click appends a column to existing criteria\n if (sortDirection.hasOwnProperty(dataKey)) {\n sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';\n } else {\n sortDirection[dataKey] = defaultSortDirection;\n sortBy.push(dataKey);\n }\n } else if (event.ctrlKey || event.metaKey) {\n // Control + click removes column from sort (if pressent)\n var index = sortBy.indexOf(dataKey);\n if (index >= 0) {\n sortBy.splice(index, 1);\n delete sortDirection[dataKey];\n }\n } else {\n // Clear sortBy array of all non-selected keys\n sortBy.length = 0;\n sortBy.push(dataKey);\n\n // Clear sortDirection object of all non-selected keys\n var sortDirectionKeys = _Object$keys(sortDirection);\n sortDirectionKeys.forEach(function (key) {\n if (key !== dataKey) delete sortDirection[key];\n });\n\n // If key is already selected, reverse sort direction.\n // Else, set sort direction to default direction.\n if (sortDirection.hasOwnProperty(dataKey)) {\n sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';\n } else {\n sortDirection[dataKey] = defaultSortDirection;\n }\n }\n\n // Notify application code\n sortCallback({\n sortBy: sortBy,\n sortDirection: sortDirection\n });\n }\n\n return {\n sort: sort,\n sortBy: sortBy,\n sortDirection: sortDirection\n };\n}","\n\n/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nexport default function defaultCellDataGetter(_ref) {\n var dataKey = _ref.dataKey,\n rowData = _ref.rowData;\n\n if (typeof rowData.get === 'function') {\n return rowData.get(dataKey);\n } else {\n return rowData[dataKey];\n }\n}\nimport { bpfrpt_proptype_CellDataGetterParams } from './types';","\n\n/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nexport default function defaultCellRenderer(_ref) {\n var cellData = _ref.cellData;\n\n if (cellData == null) {\n return '';\n } else {\n return String(cellData);\n }\n}\nimport { bpfrpt_proptype_CellRendererParams } from './types';","import * as React from 'react';\n\n\nexport default function defaultHeaderRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n style = _ref.style;\n\n return React.createElement(\n 'div',\n { className: className, role: 'row', style: style },\n columns\n );\n}\ndefaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRowRendererParams;\nimport { bpfrpt_proptype_HeaderRowRendererParams } from './types';\nimport PropTypes from 'prop-types';","var SortDirection = {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC: 'ASC',\n\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC: 'DESC'\n};\n\nexport default SortDirection;","import cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport SortDirection from './SortDirection';\n\n/**\n * Displayed beside a header to indicate that a Table is currently sorted by this column.\n */\nexport default function SortIndicator(_ref) {\n var sortDirection = _ref.sortDirection;\n\n var classNames = cn('ReactVirtualized__Table__sortableHeaderIcon', {\n 'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n });\n\n return React.createElement(\n 'svg',\n { className: classNames, width: 18, height: 18, viewBox: '0 0 24 24' },\n sortDirection === SortDirection.ASC ? React.createElement('path', { d: 'M7 14l5-5 5 5z' }) : React.createElement('path', { d: 'M7 10l5 5 5-5z' }),\n React.createElement('path', { d: 'M0 0h24v24H0z', fill: 'none' })\n );\n}\n\nSortIndicator.propTypes = process.env.NODE_ENV !== \"production\" ? {\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n} : {};","import * as React from 'react';\nimport SortIndicator from './SortIndicator';\n\n\n/**\n * Default table header renderer.\n */\nexport default function defaultHeaderRenderer(_ref) {\n var dataKey = _ref.dataKey,\n label = _ref.label,\n sortBy = _ref.sortBy,\n sortDirection = _ref.sortDirection;\n\n var showSortIndicator = sortBy === dataKey;\n var children = [React.createElement(\n 'span',\n {\n className: 'ReactVirtualized__Table__headerTruncatedText',\n key: 'label',\n title: label },\n label\n )];\n\n if (showSortIndicator) {\n children.push(React.createElement(SortIndicator, { key: 'SortIndicator', sortDirection: sortDirection }));\n }\n\n return children;\n}\ndefaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRendererParams;\nimport { bpfrpt_proptype_HeaderRendererParams } from './types';\nimport PropTypes from 'prop-types';","import _extends from 'babel-runtime/helpers/extends';\nimport * as React from 'react';\n\n\n/**\n * Default row renderer for Table.\n */\nexport default function defaultRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n index = _ref.index,\n key = _ref.key,\n onRowClick = _ref.onRowClick,\n onRowDoubleClick = _ref.onRowDoubleClick,\n onRowMouseOut = _ref.onRowMouseOut,\n onRowMouseOver = _ref.onRowMouseOver,\n onRowRightClick = _ref.onRowRightClick,\n rowData = _ref.rowData,\n style = _ref.style;\n\n var a11yProps = { 'aria-rowindex': index + 1 };\n\n if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {\n a11yProps['aria-label'] = 'row';\n a11yProps.tabIndex = 0;\n\n if (onRowClick) {\n a11yProps.onClick = function (event) {\n return onRowClick({ event: event, index: index, rowData: rowData });\n };\n }\n if (onRowDoubleClick) {\n a11yProps.onDoubleClick = function (event) {\n return onRowDoubleClick({ event: event, index: index, rowData: rowData });\n };\n }\n if (onRowMouseOut) {\n a11yProps.onMouseOut = function (event) {\n return onRowMouseOut({ event: event, index: index, rowData: rowData });\n };\n }\n if (onRowMouseOver) {\n a11yProps.onMouseOver = function (event) {\n return onRowMouseOver({ event: event, index: index, rowData: rowData });\n };\n }\n if (onRowRightClick) {\n a11yProps.onContextMenu = function (event) {\n return onRowRightClick({ event: event, index: index, rowData: rowData });\n };\n }\n }\n\n return React.createElement(\n 'div',\n _extends({}, a11yProps, {\n className: className,\n key: key,\n role: 'row',\n style: style }),\n columns\n );\n}\ndefaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_RowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_RowRendererParams;\nimport { bpfrpt_proptype_RowRendererParams } from './types';\nimport PropTypes from 'prop-types';","import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport defaultHeaderRenderer from './defaultHeaderRenderer';\nimport defaultCellRenderer from './defaultCellRenderer';\nimport defaultCellDataGetter from './defaultCellDataGetter';\nimport SortDirection from './SortDirection';\n\n/**\n * Describes the header and cell contents of a table column.\n */\n\nvar Column = function (_React$Component) {\n _inherits(Column, _React$Component);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _possibleConstructorReturn(this, (Column.__proto__ || _Object$getPrototypeOf(Column)).apply(this, arguments));\n }\n\n return Column;\n}(React.Component);\n\nColumn.defaultProps = {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n defaultSortDirection: SortDirection.ASC,\n flexGrow: 0,\n flexShrink: 1,\n headerRenderer: defaultHeaderRenderer,\n style: {}\n};\nexport default Column;\nColumn.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Optional aria-label value to set on the column header */\n 'aria-label': PropTypes.string,\n\n /**\n * Callback responsible for returning a cell's data, given its :dataKey\n * ({ columnData: any, dataKey: string, rowData: any }): any\n */\n cellDataGetter: PropTypes.func,\n\n /**\n * Callback responsible for rendering a cell's contents.\n * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node\n */\n cellRenderer: PropTypes.func,\n\n /** Optional CSS class to apply to cell */\n className: PropTypes.string,\n\n /** Optional additional data passed to this column's :cellDataGetter */\n columnData: PropTypes.object,\n\n /** Uniquely identifies the row-data attribute corresponding to this cell */\n dataKey: PropTypes.any.isRequired,\n\n /** Optional direction to be used when clicked the first time */\n defaultSortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** If sort is enabled for the table at large, disable it for this column */\n disableSort: PropTypes.bool,\n\n /** Flex grow style; defaults to 0 */\n flexGrow: PropTypes.number,\n\n /** Flex shrink style; defaults to 1 */\n flexShrink: PropTypes.number,\n\n /** Optional CSS class to apply to this column's header */\n headerClassName: PropTypes.string,\n\n /**\n * Optional callback responsible for rendering a column header contents.\n * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node\n */\n headerRenderer: PropTypes.func.isRequired,\n\n /** Optional inline style to apply to this column's header */\n headerStyle: PropTypes.object,\n\n /** Optional id to set on the column header */\n id: PropTypes.string,\n\n /** Header label for this column */\n label: PropTypes.node,\n\n /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n maxWidth: PropTypes.number,\n\n /** Minimum width of column. */\n minWidth: PropTypes.number,\n\n /** Optional inline style to apply to cell */\n style: PropTypes.object,\n\n /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n width: PropTypes.number.isRequired\n} : {};","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n\n\nimport cn from 'classnames';\n\nimport Column from './Column';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\n\nimport defaultRowRenderer from './defaultRowRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer';\nimport SortDirection from './SortDirection';\n\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\n\nvar Table = function (_React$PureComponent) {\n _inherits(Table, _React$PureComponent);\n\n function Table(props) {\n _classCallCheck(this, Table);\n\n var _this = _possibleConstructorReturn(this, (Table.__proto__ || _Object$getPrototypeOf(Table)).call(this, props));\n\n _this.state = {\n scrollbarWidth: 0\n };\n\n _this._createColumn = _this._createColumn.bind(_this);\n _this._createRow = _this._createRow.bind(_this);\n _this._onScroll = _this._onScroll.bind(_this);\n _this._onSectionRendered = _this._onSectionRendered.bind(_this);\n _this._setRef = _this._setRef.bind(_this);\n return _this;\n }\n\n _createClass(Table, [{\n key: 'forceUpdateGrid',\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n\n /** See Grid#getOffsetForCell */\n\n }, {\n key: 'getOffsetForRow',\n value: function getOffsetForRow(_ref) {\n var alignment = _ref.alignment,\n index = _ref.index;\n\n if (this.Grid) {\n var _Grid$getOffsetForCel = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index\n }),\n scrollTop = _Grid$getOffsetForCel.scrollTop;\n\n return scrollTop;\n }\n return 0;\n }\n\n /** CellMeasurer compatibility */\n\n }, {\n key: 'invalidateCellSizeAfterRender',\n value: function invalidateCellSizeAfterRender(_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex;\n\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n\n /** See Grid#measureAllCells */\n\n }, {\n key: 'measureAllRows',\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n\n /** CellMeasurer compatibility */\n\n }, {\n key: 'recomputeGridSize',\n value: function recomputeGridSize() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$columnIndex = _ref3.columnIndex,\n columnIndex = _ref3$columnIndex === undefined ? 0 : _ref3$columnIndex,\n _ref3$rowIndex = _ref3.rowIndex,\n rowIndex = _ref3$rowIndex === undefined ? 0 : _ref3$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n\n /** See Grid#recomputeGridSize */\n\n }, {\n key: 'recomputeRowHeights',\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index\n });\n }\n }\n\n /** See Grid#scrollToPosition */\n\n }, {\n key: 'scrollToPosition',\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToPosition({ scrollTop: scrollTop });\n }\n }\n\n /** See Grid#scrollToCell */\n\n }, {\n key: 'scrollToRow',\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._setScrollbarWidth();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this._setScrollbarWidth();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disableHeader = _props.disableHeader,\n gridClassName = _props.gridClassName,\n gridStyle = _props.gridStyle,\n headerHeight = _props.headerHeight,\n headerRowRenderer = _props.headerRowRenderer,\n height = _props.height,\n id = _props.id,\n noRowsRenderer = _props.noRowsRenderer,\n rowClassName = _props.rowClassName,\n rowStyle = _props.rowStyle,\n scrollToIndex = _props.scrollToIndex,\n style = _props.style,\n width = _props.width;\n var scrollbarWidth = this.state.scrollbarWidth;\n\n\n var availableRowsHeight = disableHeader ? height : height - headerHeight;\n\n var rowClass = typeof rowClassName === 'function' ? rowClassName({ index: -1 }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({ index: -1 }) : rowStyle;\n\n // Precompute and cache column styles before rendering rows and columns to speed things up\n this._cachedColumnStyles = [];\n React.Children.toArray(children).forEach(function (column, index) {\n var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);\n\n _this2._cachedColumnStyles[index] = _extends({}, flexStyles, {\n overflow: 'hidden'\n });\n });\n\n // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.\n // This is done because Grid is a pure component and won't update unless its properties or state has changed.\n // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.\n return React.createElement(\n 'div',\n {\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n 'aria-colcount': React.Children.toArray(children).length,\n 'aria-rowcount': this.props.rowCount,\n className: cn('ReactVirtualized__Table', className),\n id: id,\n role: 'grid',\n style: style },\n !disableHeader && headerRowRenderer({\n className: cn('ReactVirtualized__Table__headerRow', rowClass),\n columns: this._getHeaderColumns(),\n style: _extends({\n height: headerHeight,\n overflow: 'hidden',\n paddingRight: scrollbarWidth,\n width: width\n }, rowStyleObject)\n }),\n React.createElement(Grid, _extends({}, this.props, {\n autoContainerWidth: true,\n className: cn('ReactVirtualized__Table__Grid', gridClassName),\n cellRenderer: this._createRow,\n columnWidth: width,\n columnCount: 1,\n height: availableRowsHeight,\n id: undefined,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n role: 'rowgroup',\n scrollbarWidth: scrollbarWidth,\n scrollToRow: scrollToIndex,\n style: _extends({}, gridStyle, {\n overflowX: 'hidden'\n })\n }))\n );\n }\n }, {\n key: '_createColumn',\n value: function _createColumn(_ref4) {\n var column = _ref4.column,\n columnIndex = _ref4.columnIndex,\n isScrolling = _ref4.isScrolling,\n parent = _ref4.parent,\n rowData = _ref4.rowData,\n rowIndex = _ref4.rowIndex;\n var onColumnClick = this.props.onColumnClick;\n var _column$props = column.props,\n cellDataGetter = _column$props.cellDataGetter,\n cellRenderer = _column$props.cellRenderer,\n className = _column$props.className,\n columnData = _column$props.columnData,\n dataKey = _column$props.dataKey,\n id = _column$props.id;\n\n\n var cellData = cellDataGetter({ columnData: columnData, dataKey: dataKey, rowData: rowData });\n var renderedCell = cellRenderer({\n cellData: cellData,\n columnData: columnData,\n columnIndex: columnIndex,\n dataKey: dataKey,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: rowIndex\n });\n\n var onClick = function onClick(event) {\n onColumnClick && onColumnClick({ columnData: columnData, dataKey: dataKey, event: event });\n };\n\n var style = this._cachedColumnStyles[columnIndex];\n\n var title = typeof renderedCell === 'string' ? renderedCell : null;\n\n // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n return React.createElement(\n 'div',\n {\n 'aria-colindex': columnIndex + 1,\n 'aria-describedby': id,\n className: cn('ReactVirtualized__Table__rowColumn', className),\n key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\n onClick: onClick,\n role: 'gridcell',\n style: style,\n title: title },\n renderedCell\n );\n }\n }, {\n key: '_createHeader',\n value: function _createHeader(_ref5) {\n var column = _ref5.column,\n index = _ref5.index;\n var _props2 = this.props,\n headerClassName = _props2.headerClassName,\n headerStyle = _props2.headerStyle,\n onHeaderClick = _props2.onHeaderClick,\n sort = _props2.sort,\n sortBy = _props2.sortBy,\n sortDirection = _props2.sortDirection;\n var _column$props2 = column.props,\n columnData = _column$props2.columnData,\n dataKey = _column$props2.dataKey,\n defaultSortDirection = _column$props2.defaultSortDirection,\n disableSort = _column$props2.disableSort,\n headerRenderer = _column$props2.headerRenderer,\n id = _column$props2.id,\n label = _column$props2.label;\n\n var sortEnabled = !disableSort && sort;\n\n var classNames = cn('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {\n ReactVirtualized__Table__sortableHeaderColumn: sortEnabled\n });\n var style = this._getFlexStyleForColumn(column, _extends({}, headerStyle, column.props.headerStyle));\n\n var renderedHeader = headerRenderer({\n columnData: columnData,\n dataKey: dataKey,\n disableSort: disableSort,\n label: label,\n sortBy: sortBy,\n sortDirection: sortDirection\n });\n\n var headerOnClick = void 0,\n headerOnKeyDown = void 0,\n headerTabIndex = void 0,\n headerAriaSort = void 0,\n headerAriaLabel = void 0;\n\n if (sortEnabled || onHeaderClick) {\n // If this is a sortable header, clicking it should update the table data's sorting.\n var isFirstTimeSort = sortBy !== dataKey;\n\n // If this is the firstTime sort of this column, use the column default sort order.\n // Otherwise, invert the direction of the sort.\n var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n\n var onClick = function onClick(event) {\n sortEnabled && sort({\n defaultSortDirection: defaultSortDirection,\n event: event,\n sortBy: dataKey,\n sortDirection: newSortDirection\n });\n onHeaderClick && onHeaderClick({ columnData: columnData, dataKey: dataKey, event: event });\n };\n\n var onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick(event);\n }\n };\n\n headerAriaLabel = column.props['aria-label'] || label || dataKey;\n headerAriaSort = 'none';\n headerTabIndex = 0;\n headerOnClick = onClick;\n headerOnKeyDown = onKeyDown;\n }\n\n if (sortBy === dataKey) {\n headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';\n }\n\n // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n return React.createElement(\n 'div',\n {\n 'aria-label': headerAriaLabel,\n 'aria-sort': headerAriaSort,\n className: classNames,\n id: id,\n key: 'Header-Col' + index,\n onClick: headerOnClick,\n onKeyDown: headerOnKeyDown,\n role: 'columnheader',\n style: style,\n tabIndex: headerTabIndex },\n renderedHeader\n );\n }\n }, {\n key: '_createRow',\n value: function _createRow(_ref6) {\n var _this3 = this;\n\n var index = _ref6.rowIndex,\n isScrolling = _ref6.isScrolling,\n key = _ref6.key,\n parent = _ref6.parent,\n style = _ref6.style;\n var _props3 = this.props,\n children = _props3.children,\n onRowClick = _props3.onRowClick,\n onRowDoubleClick = _props3.onRowDoubleClick,\n onRowRightClick = _props3.onRowRightClick,\n onRowMouseOver = _props3.onRowMouseOver,\n onRowMouseOut = _props3.onRowMouseOut,\n rowClassName = _props3.rowClassName,\n rowGetter = _props3.rowGetter,\n rowRenderer = _props3.rowRenderer,\n rowStyle = _props3.rowStyle;\n var scrollbarWidth = this.state.scrollbarWidth;\n\n\n var rowClass = typeof rowClassName === 'function' ? rowClassName({ index: index }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({ index: index }) : rowStyle;\n var rowData = rowGetter({ index: index });\n\n var columns = React.Children.toArray(children).map(function (column, columnIndex) {\n return _this3._createColumn({\n column: column,\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: index,\n scrollbarWidth: scrollbarWidth\n });\n });\n\n var className = cn('ReactVirtualized__Table__row', rowClass);\n var flattenedStyle = _extends({}, style, {\n height: this._getRowHeight(index),\n overflow: 'hidden',\n paddingRight: scrollbarWidth\n }, rowStyleObject);\n\n return rowRenderer({\n className: className,\n columns: columns,\n index: index,\n isScrolling: isScrolling,\n key: key,\n onRowClick: onRowClick,\n onRowDoubleClick: onRowDoubleClick,\n onRowRightClick: onRowRightClick,\n onRowMouseOver: onRowMouseOver,\n onRowMouseOut: onRowMouseOut,\n rowData: rowData,\n style: flattenedStyle\n });\n }\n\n /**\n * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n */\n\n }, {\n key: '_getFlexStyleForColumn',\n value: function _getFlexStyleForColumn(column) {\n var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var flexValue = column.props.flexGrow + ' ' + column.props.flexShrink + ' ' + column.props.width + 'px';\n\n var style = _extends({}, customStyle, {\n flex: flexValue,\n msFlex: flexValue,\n WebkitFlex: flexValue\n });\n\n if (column.props.maxWidth) {\n style.maxWidth = column.props.maxWidth;\n }\n\n if (column.props.minWidth) {\n style.minWidth = column.props.minWidth;\n }\n\n return style;\n }\n }, {\n key: '_getHeaderColumns',\n value: function _getHeaderColumns() {\n var _this4 = this;\n\n var _props4 = this.props,\n children = _props4.children,\n disableHeader = _props4.disableHeader;\n\n var items = disableHeader ? [] : React.Children.toArray(children);\n\n return items.map(function (column, index) {\n return _this4._createHeader({ column: column, index: index });\n });\n }\n }, {\n key: '_getRowHeight',\n value: function _getRowHeight(rowIndex) {\n var rowHeight = this.props.rowHeight;\n\n\n return typeof rowHeight === 'function' ? rowHeight({ index: rowIndex }) : rowHeight;\n }\n }, {\n key: '_onScroll',\n value: function _onScroll(_ref7) {\n var clientHeight = _ref7.clientHeight,\n scrollHeight = _ref7.scrollHeight,\n scrollTop = _ref7.scrollTop;\n var onScroll = this.props.onScroll;\n\n\n onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n }\n }, {\n key: '_onSectionRendered',\n value: function _onSectionRendered(_ref8) {\n var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref8.rowOverscanStopIndex,\n rowStartIndex = _ref8.rowStartIndex,\n rowStopIndex = _ref8.rowStopIndex;\n var onRowsRendered = this.props.onRowsRendered;\n\n\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n }\n }, {\n key: '_setRef',\n value: function _setRef(ref) {\n this.Grid = ref;\n }\n }, {\n key: '_setScrollbarWidth',\n value: function _setScrollbarWidth() {\n if (this.Grid) {\n var _Grid = findDOMNode(this.Grid);\n var clientWidth = _Grid.clientWidth || 0;\n var offsetWidth = _Grid.offsetWidth || 0;\n var scrollbarWidth = offsetWidth - clientWidth;\n\n this.setState({ scrollbarWidth: scrollbarWidth });\n }\n }\n }]);\n\n return Table;\n}(React.PureComponent);\n\nTable.defaultProps = {\n disableHeader: false,\n estimatedRowSize: 30,\n headerHeight: 0,\n headerStyle: {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n overscanRowCount: 10,\n rowRenderer: defaultRowRenderer,\n headerRowRenderer: defaultHeaderRowRenderer,\n rowStyle: {},\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n};\nexport default Table;\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** This is just set on the grid top element. */\n 'aria-label': PropTypes.string,\n\n /** This is just set on the grid top element. */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /** One or more Columns describing the data displayed in this row */\n children: function children(props) {\n var children = React.Children.toArray(props.children);\n for (var i = 0; i < children.length; i++) {\n var childType = children[i].type;\n if (childType !== Column && !(childType.prototype instanceof Column)) {\n return new Error('Table only accepts children of type Column');\n }\n }\n },\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Disable rendering the header at all */\n disableHeader: PropTypes.bool,\n\n /**\n * Used to estimate the total height of a Table before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: PropTypes.number.isRequired,\n\n /** Optional custom CSS class name to attach to inner Grid element. */\n gridClassName: PropTypes.string,\n\n /** Optional inline style to attach to inner Grid element. */\n gridStyle: PropTypes.object,\n\n /** Optional CSS class to apply to all column headers */\n headerClassName: PropTypes.string,\n\n /** Fixed height of header row */\n headerHeight: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: any[],\n * style: any\n * }): PropTypes.node\n */\n headerRowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table header columns. */\n headerStyle: PropTypes.object,\n\n /** Fixed/available height for out DOM element */\n height: PropTypes.number.isRequired,\n\n /** Optional id */\n id: PropTypes.string,\n\n /** Optional renderer to be used in place of table body rows when rowCount is 0 */\n noRowsRenderer: PropTypes.func,\n\n /**\n * Optional callback when a column is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onColumnClick: PropTypes.func,\n\n /**\n * Optional callback when a column's header is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onHeaderClick: PropTypes.func,\n\n /**\n * Callback invoked when a user clicks on a table row.\n * ({ index: number }): void\n */\n onRowClick: PropTypes.func,\n\n /**\n * Callback invoked when a user double-clicks on a table row.\n * ({ index: number }): void\n */\n onRowDoubleClick: PropTypes.func,\n\n /**\n * Callback invoked when the mouse leaves a table row.\n * ({ index: number }): void\n */\n onRowMouseOut: PropTypes.func,\n\n /**\n * Callback invoked when a user moves the mouse over a table row.\n * ({ index: number }): void\n */\n onRowMouseOver: PropTypes.func,\n\n /**\n * Callback invoked when a user right-clicks on a table row.\n * ({ index: number }): void\n */\n onRowRightClick: PropTypes.func,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /** See Grid#overscanIndicesGetter */\n overscanIndicesGetter: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowCount: PropTypes.number.isRequired,\n\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: ({ index: number }): string\n */\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Callback responsible for returning a data row given an index.\n * ({ index: number }): any\n */\n rowGetter: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * ({ index: number }): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Number of rows in table. */\n rowCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: Array,\n * index: number,\n * isScrolling: boolean,\n * onRowClick: ?Function,\n * onRowDoubleClick: ?Function,\n * onRowMouseOver: ?Function,\n * onRowMouseOut: ?Function,\n * rowData: any,\n * style: any\n * }): PropTypes.node\n */\n rowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table rows. */\n rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,\n\n /** See Grid#scrollToAlignment */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number.isRequired,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Sort function to be called if a sortable header is clicked.\n * Should implement the following interface: ({\n * defaultSortDirection: 'ASC' | 'DESC',\n * event: MouseEvent,\n * sortBy: string,\n * sortDirection: SortDirection\n * }): void\n */\n sort: PropTypes.func,\n\n /** Table data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: PropTypes.string,\n\n /** Table data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** Optional inline style */\n style: PropTypes.object,\n\n /** Tab index for focus */\n tabIndex: PropTypes.number,\n\n /** Width of list */\n width: PropTypes.number.isRequired\n} : {};\nimport { bpfrpt_proptype_CellPosition } from '../Grid';","import { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';\n\n\nvar mountedInstances = [];\nvar originalBodyPointerEvents = null;\nvar disablePointerEventsTimeoutId = null;\n\nfunction enablePointerEventsIfDisabled() {\n if (disablePointerEventsTimeoutId) {\n disablePointerEventsTimeoutId = null;\n\n if (document.body && originalBodyPointerEvents != null) {\n document.body.style.pointerEvents = originalBodyPointerEvents;\n }\n\n originalBodyPointerEvents = null;\n }\n}\n\nfunction enablePointerEventsAfterDelayCallback() {\n enablePointerEventsIfDisabled();\n mountedInstances.forEach(function (instance) {\n return instance.__resetIsScrolling();\n });\n}\n\nfunction enablePointerEventsAfterDelay() {\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n }\n\n var maximumTimeout = 0;\n mountedInstances.forEach(function (instance) {\n maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);\n });\n\n disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);\n}\n\nfunction onScrollWindow(event) {\n if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n\n document.body.style.pointerEvents = 'none';\n }\n enablePointerEventsAfterDelay();\n mountedInstances.forEach(function (instance) {\n if (instance.props.scrollElement === event.currentTarget) {\n instance.__handleWindowScrollEvent();\n }\n });\n}\n\nexport function registerScrollListener(component, element) {\n if (!mountedInstances.some(function (instance) {\n return instance.props.scrollElement === element;\n })) {\n element.addEventListener('scroll', onScrollWindow);\n }\n mountedInstances.push(component);\n}\n\nexport function unregisterScrollListener(component, element) {\n mountedInstances = mountedInstances.filter(function (instance) {\n return instance !== component;\n });\n if (!mountedInstances.length) {\n element.removeEventListener('scroll', onScrollWindow);\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n enablePointerEventsIfDisabled();\n }\n }\n}\nimport { bpfrpt_proptype_WindowScroller } from '../WindowScroller.js';","\n\n/**\n * Gets the dimensions of the element, accounting for API differences between\n * `window` and other DOM elements.\n */\n\nvar isWindow = function isWindow(element) {\n return element === window;\n};\n\n// TODO Move this into WindowScroller and import from there\n\n\nvar getBoundingBox = function getBoundingBox(element) {\n return element.getBoundingClientRect();\n};\n\nexport function getDimensions(scrollElement, props) {\n if (!scrollElement) {\n return {\n height: props.serverHeight,\n width: props.serverWidth\n };\n } else if (isWindow(scrollElement)) {\n var _window = window,\n innerHeight = _window.innerHeight,\n innerWidth = _window.innerWidth;\n\n return {\n height: typeof innerHeight === 'number' ? innerHeight : 0,\n width: typeof innerWidth === 'number' ? innerWidth : 0\n };\n } else {\n return getBoundingBox(scrollElement);\n }\n}\n\n/**\n * Gets the vertical and horizontal position of an element within its scroll container.\n * Elements that have been “scrolled past” return negative values.\n * Handles edge-case where a user is navigating back (history) from an already-scrolled page.\n * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).\n */\nexport function getPositionOffset(element, container) {\n if (isWindow(container) && document.documentElement) {\n var containerElement = document.documentElement;\n var elementRect = getBoundingBox(element);\n var containerRect = getBoundingBox(containerElement);\n return {\n top: elementRect.top - containerRect.top,\n left: elementRect.left - containerRect.left\n };\n } else {\n var scrollOffset = getScrollOffset(container);\n var _elementRect = getBoundingBox(element);\n var _containerRect = getBoundingBox(container);\n return {\n top: _elementRect.top + scrollOffset.top - _containerRect.top,\n left: _elementRect.left + scrollOffset.left - _containerRect.left\n };\n }\n}\n\n/**\n * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility\n * and API differences between `window` and other DOM elements.\n */\nexport function getScrollOffset(element) {\n if (isWindow(element) && document.documentElement) {\n return {\n top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,\n left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft\n };\n } else {\n return {\n top: element.scrollTop,\n left: element.scrollLeft\n };\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { registerScrollListener, unregisterScrollListener } from './utils/onScroll';\nimport { getDimensions, getPositionOffset, getScrollOffset } from './utils/dimensions';\nimport createDetectElementResize from '../vendor/detectElementResize';\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nexport var IS_SCROLLING_TIMEOUT = 150;\n\nvar getWindow = function getWindow() {\n return typeof window !== 'undefined' ? window : undefined;\n};\n\nvar WindowScroller = function (_React$PureComponent) {\n _inherits(WindowScroller, _React$PureComponent);\n\n function WindowScroller() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, WindowScroller);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = WindowScroller.__proto__ || _Object$getPrototypeOf(WindowScroller)).call.apply(_ref, [this].concat(args))), _this), _this._window = getWindow(), _this._isMounted = false, _this._positionFromTop = 0, _this._positionFromLeft = 0, _this.state = _extends({}, getDimensions(_this.props.scrollElement, _this.props), {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }), _this._registerChild = function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('WindowScroller registerChild expects to be passed Element or null');\n }\n _this._child = element;\n _this.updatePosition();\n }, _this._onChildScroll = function (_ref2) {\n var scrollTop = _ref2.scrollTop;\n\n if (_this.state.scrollTop === scrollTop) {\n return;\n }\n\n var scrollElement = _this.props.scrollElement;\n if (scrollElement) {\n if (typeof scrollElement.scrollTo === 'function') {\n scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);\n } else {\n scrollElement.scrollTop = scrollTop + _this._positionFromTop;\n }\n }\n }, _this._registerResizeListener = function (element) {\n if (element === window) {\n window.addEventListener('resize', _this._onResize, false);\n } else {\n _this._detectElementResize.addResizeListener(element, _this._onResize);\n }\n }, _this._unregisterResizeListener = function (element) {\n if (element === window) {\n window.removeEventListener('resize', _this._onResize, false);\n } else if (element) {\n _this._detectElementResize.removeResizeListener(element, _this._onResize);\n }\n }, _this._onResize = function () {\n _this.updatePosition();\n }, _this.__handleWindowScrollEvent = function () {\n if (!_this._isMounted) {\n return;\n }\n\n var onScroll = _this.props.onScroll;\n\n\n var scrollElement = _this.props.scrollElement;\n if (scrollElement) {\n var scrollOffset = getScrollOffset(scrollElement);\n var _scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);\n var _scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);\n\n _this.setState({\n isScrolling: true,\n scrollLeft: _scrollLeft,\n scrollTop: _scrollTop\n });\n\n onScroll({\n scrollLeft: _scrollLeft,\n scrollTop: _scrollTop\n });\n }\n }, _this.__resetIsScrolling = function () {\n _this.setState({\n isScrolling: false\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(WindowScroller, [{\n key: 'updatePosition',\n value: function updatePosition() {\n var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;\n var onResize = this.props.onResize;\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n\n var thisNode = this._child || ReactDOM.findDOMNode(this);\n if (thisNode instanceof Element && scrollElement) {\n var offset = getPositionOffset(thisNode, scrollElement);\n this._positionFromTop = offset.top;\n this._positionFromLeft = offset.left;\n }\n\n var dimensions = getDimensions(scrollElement, this.props);\n if (height !== dimensions.height || width !== dimensions.width) {\n this.setState({\n height: dimensions.height,\n width: dimensions.width\n });\n onResize({\n height: dimensions.height,\n width: dimensions.width\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var scrollElement = this.props.scrollElement;\n\n this._detectElementResize = createDetectElementResize();\n\n this.updatePosition(scrollElement);\n\n if (scrollElement) {\n registerScrollListener(this, scrollElement);\n this._registerResizeListener(scrollElement);\n }\n\n this._isMounted = true;\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var scrollElement = this.props.scrollElement;\n var prevScrollElement = prevProps.scrollElement;\n\n\n if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {\n this.updatePosition(scrollElement);\n\n unregisterScrollListener(this, prevScrollElement);\n registerScrollListener(this, scrollElement);\n\n this._unregisterResizeListener(prevScrollElement);\n this._registerResizeListener(scrollElement);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var scrollElement = this.props.scrollElement;\n if (scrollElement) {\n unregisterScrollListener(this, scrollElement);\n this._unregisterResizeListener(scrollElement);\n }\n\n this._isMounted = false;\n }\n }, {\n key: 'render',\n value: function render() {\n var children = this.props.children;\n var _state2 = this.state,\n isScrolling = _state2.isScrolling,\n scrollTop = _state2.scrollTop,\n scrollLeft = _state2.scrollLeft,\n height = _state2.height,\n width = _state2.width;\n\n\n return children({\n onChildScroll: this._onChildScroll,\n registerChild: this._registerChild,\n height: height,\n isScrolling: isScrolling,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n }\n\n // Referenced by utils/onScroll\n\n\n // Referenced by utils/onScroll\n\n }]);\n\n return WindowScroller;\n}(React.PureComponent);\n\nWindowScroller.defaultProps = {\n onResize: function onResize() {},\n onScroll: function onScroll() {},\n scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,\n scrollElement: getWindow(),\n serverHeight: 0,\n serverWidth: 0\n};\nWindowScroller.propTypes = process.env.NODE_ENV === 'production' ? null : {\n /**\n * Function responsible for rendering children.\n * This function should implement the following signature:\n * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element\n */\n children: PropTypes.func.isRequired,\n\n\n /** Callback to be invoked on-resize: ({ height, width }) */\n onResize: PropTypes.func.isRequired,\n\n\n /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n onScroll: PropTypes.func.isRequired,\n\n\n /** Element to attach scroll event listeners. Defaults to window. */\n scrollElement: PropTypes.oneOfType([PropTypes.any, function () {\n return (typeof Element === 'function' ? PropTypes.instanceOf(Element) : PropTypes.any).apply(this, arguments);\n }]),\n\n /**\n * Wait this amount of time after the last scroll event before resetting child `pointer-events`.\n */\n scrollingResetTimeInterval: PropTypes.number.isRequired,\n\n\n /** Height used for server-side rendering */\n serverHeight: PropTypes.number.isRequired,\n\n\n /** Width used for server-side rendering */\n serverWidth: PropTypes.number.isRequired\n};\nexport default WindowScroller;\nimport PropTypes from 'prop-types';","/** @license React v16.13.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k