{"version":3,"file":"static/js/vendor.initial~bf570518.86e6f6d3.js","mappings":"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","sources":["../../../../node_modules/.pnpm/react-jss@10.4.0_react@17.0.1/node_modules/react-jss/dist/react-jss.esm.js","../../../../node_modules/.pnpm/react-lifecycles-compat@3.0.4/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../../../node_modules/.pnpm/react-media@1.9.2_react@17.0.1/node_modules/react-media/esm/react-media.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/components/Modal.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/components/ModalPortal.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/ariaAppHider.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/classList.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/focusManager.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/scopeTab.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/helpers/tabbable.js","../../../../node_modules/.pnpm/react-modal@3.8.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-modal/lib/index.js","../../../../node_modules/.pnpm/react-onclickoutside@6.7.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/Affix.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/AutoAffix.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/LegacyPortal.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/Modal.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/ModalManager.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/Overlay.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/Portal.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/Position.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/RefHolder.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/RootCloseWrapper.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/index.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/addEventListener.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/addFocusListener.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/calculatePosition.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/getContainer.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/getDocumentHeight.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/isOverflowing.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/manageAriaHidden.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/ownerDocument.js","../../../../node_modules/.pnpm/react-overlays@0.9.3_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-overlays/lib/utils/ownerWindow.js","../../../../node_modules/.pnpm/react-prop-types@0.4.0_react@17.0.1/node_modules/react-prop-types/lib/elementType.js","../../../../node_modules/.pnpm/react-prop-types@0.4.0_react@17.0.1/node_modules/react-prop-types/lib/utils/createChainableTypeChecker.js","../../../../node_modules/.pnpm/react-router-dom@5.2.1_react@17.0.1/node_modules/react-router-dom/esm/react-router-dom.js","../../../../node_modules/.pnpm/react-router@5.2.1_react@17.0.1/node_modules/react-router/esm/react-router.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/Textfit.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/index.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/innerSize.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/series.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/shallowEqual.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/throttle.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/uniqueId.js","../../../../node_modules/.pnpm/react-textfit@10.0.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-textfit/lib/utils/whilst.js","../../../../node_modules/.pnpm/react-transition-group@2.9.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/Transition.js","../../../../node_modules/.pnpm/react-transition-group@2.9.0_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/utils/PropTypes.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/esm/config.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/esm/Transition.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/esm/utils/reflow.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/utils/animationFrame.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/Grid.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/CellMeasurer/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/CollectionView.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/Section.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/SectionManager.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/Collection.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Collection/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/ColumnSizer/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/InfiniteLoader/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/List/List.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/vendor/intervalTree.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Masonry/Masonry.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Masonry/createCellPositioner.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Masonry/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/createMultiSort.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/SortDirection.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/SortIndicator.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/Column.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/Table.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/Table/index.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","../../../../node_modules/.pnpm/react-virtualized@9.20.1_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","../../../../node_modules/.pnpm/react@17.0.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/.pnpm/react@17.0.1/node_modules/react/cjs/react.production.min.js","../../../../node_modules/.pnpm/react@17.0.1/node_modules/react/index.js","../../../../node_modules/.pnpm/react@17.0.1/node_modules/react/jsx-runtime.js"],"sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport React, { Component } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { ThemeContext } from 'theming';\nexport { ThemeProvider, createTheming, useTheme, withTheme } from 'theming';\nimport warning from 'tiny-warning';\nimport defaultJss$1, { SheetsManager, create as create$1, getDynamicStyles, createGenerateId, SheetsRegistry } from 'jss';\nexport { SheetsRegistry, createGenerateId } from 'jss';\nimport preset from 'jss-preset-default';\nimport isInBrowser from 'is-in-browser';\nimport PropTypes from 'prop-types';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport isPropValid from '@emotion/is-prop-valid';\nimport defaultCss from 'css-jss';\n\nvar getDisplayName = (function (Component) {\n return Component.displayName || Component.name || 'Component';\n});\n\nvar memoize = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (Array.isArray(lastArgs) && args.length === lastArgs.length) {\n var isSame = true;\n\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== lastArgs[i]) {\n isSame = false;\n }\n }\n\n if (isSame) {\n return lastResult;\n }\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};\n\nfunction mergeClasses(baseClasses, additionalClasses) {\n var combinedClasses = _extends({}, baseClasses);\n\n for (var name in additionalClasses) {\n combinedClasses[name] = name in combinedClasses ? combinedClasses[name] + \" \" + additionalClasses[name] : additionalClasses[name];\n }\n\n return combinedClasses;\n}\n\nvar JssContext = React.createContext({\n classNamePrefix: '',\n disableStylesGeneration: false\n});\n\n/**\n * Global index counter to preserve source order.\n * As we create the style sheet during componentWillMount lifecycle,\n * children are handled after the parents, so the order of style elements would\n * be parent->child. It is a problem though when a parent passes a className\n * which needs to override any childs styles. StyleSheet of the child has a higher\n * specificity, because of the source order.\n * So our solution is to render sheets them in the reverse order child->sheet, so\n * that parent has a higher specificity.\n *\n * We start at [Number.MIN_SAFE_INTEGER] to always insert sheets from react-jss first before any\n * sheet which might be inserted manually by the user.\n */\nvar index = Number.MIN_SAFE_INTEGER || -1e9;\n\nvar getSheetIndex = function getSheetIndex() {\n return index++;\n};\n\nvar defaultManagers = new Map();\nvar getManager = function getManager(context, managerId) {\n // If `managers` map is present in the context, we use it in order to\n // let JssProvider reset them when new response has to render server-side.\n if (context.managers) {\n if (!context.managers[managerId]) {\n context.managers[managerId] = new SheetsManager();\n }\n\n return context.managers[managerId];\n }\n\n var manager = defaultManagers.get(managerId);\n\n if (!manager) {\n manager = new SheetsManager();\n defaultManagers.set(managerId, manager);\n }\n\n return manager;\n};\nvar manageSheet = function manageSheet(options) {\n var sheet = options.sheet,\n context = options.context,\n index = options.index,\n theme = options.theme;\n\n if (!sheet) {\n return;\n }\n\n var manager = getManager(context, index);\n manager.manage(theme);\n\n if (context.registry) {\n context.registry.add(sheet);\n }\n};\nvar unmanageSheet = function unmanageSheet(options) {\n if (!options.sheet) {\n return;\n }\n\n var manager = getManager(options.context, options.index);\n manager.unmanage(options.theme);\n};\n\nvar defaultJss = create$1(preset());\n\nvar sheetsMeta = new WeakMap();\nvar getMeta = function getMeta(sheet) {\n return sheetsMeta.get(sheet);\n};\nvar addMeta = function addMeta(sheet, meta) {\n sheetsMeta.set(sheet, meta);\n};\n\nvar getStyles = function getStyles(options) {\n var styles = options.styles;\n\n if (typeof styles !== 'function') {\n return styles;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(styles.length !== 0, \"[JSS] <\" + (options.name || 'Hook') + \" />'s styles function doesn't rely on the \\\"theme\\\" argument. We recommend declaring styles as an object instead.\") : void 0;\n return styles(options.theme);\n};\n\nfunction getSheetOptions(options, link) {\n var minify;\n\n if (options.context.id && options.context.id.minify != null) {\n minify = options.context.id.minify;\n }\n\n var classNamePrefix = options.context.classNamePrefix || '';\n\n if (options.name && !minify) {\n classNamePrefix += options.name.replace(/\\s/g, '-') + \"-\";\n }\n\n var meta = '';\n if (options.name) meta = options.name + \", \";\n meta += typeof options.styles === 'function' ? 'Themed' : 'Unthemed';\n return _extends({}, options.sheetOptions, {\n index: options.index,\n meta: meta,\n classNamePrefix: classNamePrefix,\n link: link,\n generateId: options.sheetOptions.generateId || options.context.generateId\n });\n}\n\nvar createStyleSheet = function createStyleSheet(options) {\n if (options.context.disableStylesGeneration) {\n return undefined;\n }\n\n var manager = getManager(options.context, options.index);\n var existingSheet = manager.get(options.theme);\n\n if (existingSheet) {\n return existingSheet;\n }\n\n var jss = options.context.jss || defaultJss;\n var styles = getStyles(options);\n var dynamicStyles = getDynamicStyles(styles);\n var sheet = jss.createStyleSheet(styles, getSheetOptions(options, dynamicStyles !== null));\n addMeta(sheet, {\n dynamicStyles: dynamicStyles,\n styles: styles\n });\n manager.add(options.theme, sheet);\n return sheet;\n};\nvar removeDynamicRules = function removeDynamicRules(sheet, rules) {\n // Loop over each dynamic rule and remove the dynamic rule\n // We can't just remove the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.deleteRule(rules[key]);\n }\n};\nvar updateDynamicRules = function updateDynamicRules(data, sheet, rules) {\n // Loop over each dynamic rule and update it\n // We can't just update the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.updateOne(rules[key], data);\n }\n};\nvar addDynamicRules = function addDynamicRules(sheet, data) {\n var meta = getMeta(sheet);\n\n if (!meta) {\n return undefined;\n }\n\n var rules = {}; // Loop over each dynamic rule and add it to the stylesheet\n\n for (var key in meta.dynamicStyles) {\n var initialRuleCount = sheet.rules.index.length;\n var originalRule = sheet.addRule(key, meta.dynamicStyles[key]); // Loop through all created rules, fixes updating dynamic rules\n\n for (var i = initialRuleCount; i < sheet.rules.index.length; i++) {\n var rule = sheet.rules.index[i];\n sheet.updateOne(rule, data); // If it's the original rule, we need to add it by the correct key so the hook and hoc\n // can correctly concat the dynamic class with the static one\n\n rules[originalRule === rule ? key : rule.key] = rule;\n }\n }\n\n return rules;\n};\n\nvar getSheetClasses = function getSheetClasses(sheet, dynamicRules) {\n if (!dynamicRules) {\n return sheet.classes;\n }\n\n var classes = {};\n var meta = getMeta(sheet);\n\n if (!meta) {\n return sheet.classes;\n }\n\n for (var key in meta.styles) {\n classes[key] = sheet.classes[key];\n\n if (key in dynamicRules) {\n classes[key] += \" \" + sheet.classes[dynamicRules[key].key];\n }\n }\n\n return classes;\n};\n\nvar NoRenderer = function NoRenderer(props) {\n return props.children || null;\n};\n\nvar noTheme = {};\n/**\n * HOC creator function that wrapps the user component.\n *\n * `withStyles(styles, [options])(Component)`\n */\n\nvar withStyles = function withStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n injectTheme = _options.injectTheme,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"injectTheme\"]);\n\n var isThemingEnabled = typeof styles === 'function';\n var ThemeConsumer = theming && theming.context.Consumer || ThemeContext.Consumer;\n return function (InnerComponent) {\n if (InnerComponent === void 0) {\n InnerComponent = NoRenderer;\n }\n\n var displayName = getDisplayName(InnerComponent);\n\n var getTheme = function getTheme(props) {\n return isThemingEnabled ? props.theme : noTheme;\n };\n\n var WithStyles =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(WithStyles, _Component);\n\n // $FlowFixMe\n WithStyles.createState = function createState(props) {\n var sheet = createStyleSheet({\n styles: styles,\n theme: getTheme(props),\n index: index,\n name: displayName,\n context: props.jssContext,\n sheetOptions: sheetOptions\n });\n\n if (!sheet) {\n return {\n classes: {},\n dynamicRules: undefined,\n sheet: undefined\n };\n }\n\n var dynamicRules = addDynamicRules(sheet, props);\n return {\n sheet: sheet,\n dynamicRules: dynamicRules,\n classes: getSheetClasses(sheet, dynamicRules)\n };\n };\n\n WithStyles.manage = function manage(props, state) {\n var sheet = state.sheet;\n\n if (sheet) {\n manageSheet({\n sheet: sheet,\n index: index,\n context: props.jssContext,\n theme: getTheme(props)\n });\n }\n };\n\n WithStyles.unmanage = function unmanage(props, state) {\n var sheet = state.sheet,\n dynamicRules = state.dynamicRules;\n\n if (sheet) {\n unmanageSheet({\n context: props.jssContext,\n index: index,\n sheet: sheet,\n theme: getTheme(props)\n });\n\n if (dynamicRules) {\n removeDynamicRules(sheet, dynamicRules);\n }\n }\n };\n\n function WithStyles(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.mergeClassesProp = memoize(function (sheetClasses, classesProp) {\n return classesProp ? mergeClasses(sheetClasses, classesProp) : sheetClasses;\n });\n _this.state = WithStyles.createState(props);\n var registry = props.jssContext.registry;\n var sheet = _this.state.sheet;\n\n if (sheet && registry) {\n registry.add(sheet);\n }\n\n return _this;\n }\n\n var _proto = WithStyles.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var props = this.props,\n state = this.state;\n\n if (props && state) {\n WithStyles.manage(props, state);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (isThemingEnabled && this.props.theme !== prevProps.theme) {\n var newState = WithStyles.createState(this.props);\n WithStyles.manage(this.props, newState);\n WithStyles.unmanage(prevProps, prevState); // eslint-disable-next-line react/no-did-update-set-state\n\n this.setState(newState);\n } else if (this.state.sheet && this.state.dynamicRules) {\n // Only update the rules when we don't generate a new sheet\n updateDynamicRules(this.props, this.state.sheet, this.state.dynamicRules);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n WithStyles.unmanage(this.props, this.state);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n jssContext = _this$props.jssContext,\n theme = _this$props.theme,\n classes = _this$props.classes,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"innerRef\", \"jssContext\", \"theme\", \"classes\"]);\n\n var sheetClasses = this.state.classes;\n\n var props = _extends({}, rest, {\n classes: this.mergeClassesProp(sheetClasses, classes)\n });\n\n if (innerRef) props.ref = innerRef;\n if (injectTheme) props.theme = theme;\n return React.createElement(InnerComponent, props);\n };\n\n return WithStyles;\n }(Component);\n\n WithStyles.displayName = \"WithStyles(\" + displayName + \")\";\n WithStyles.defaultProps = _extends({}, InnerComponent.defaultProps);\n var JssContextSubscriber = React.forwardRef(function (props, ref) {\n return React.createElement(JssContext.Consumer, null, function (context) {\n if (isThemingEnabled || injectTheme) {\n return React.createElement(ThemeConsumer, null, function (theme) {\n return React.createElement(WithStyles, _extends({\n innerRef: ref,\n theme: theme\n }, props, {\n jssContext: context\n }));\n });\n }\n\n return React.createElement(WithStyles, _extends({\n innerRef: ref\n }, props, {\n jssContext: context,\n theme: noTheme\n }));\n });\n });\n JssContextSubscriber.displayName = \"JssContextSubscriber(\" + displayName + \")\"; // $FlowFixMe - React's types should allow custom static properties on component.\n\n JssContextSubscriber.InnerComponent = InnerComponent;\n return hoistNonReactStatics(JssContextSubscriber, InnerComponent);\n };\n};\n\nvar useEffectOrLayoutEffect = isInBrowser ? React.useLayoutEffect : React.useEffect;\nvar noTheme$1 = {};\n\nvar createUseStyles = function createUseStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n name = _options.name,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"name\"]);\n\n var ThemeContext$1 = theming && theming.context || ThemeContext;\n var useTheme = typeof styles === 'function' ? // $FlowFixMe\n function () {\n return React.useContext(ThemeContext$1) || noTheme$1;\n } : // $FlowFixMe\n function () {\n return noTheme$1;\n };\n return function useStyles(data) {\n var isFirstMount = React.useRef(true);\n var context = React.useContext(JssContext);\n var theme = useTheme();\n\n var _React$useMemo = React.useMemo(function () {\n var newSheet = createStyleSheet({\n context: context,\n styles: styles,\n name: name,\n theme: theme,\n index: index,\n sheetOptions: sheetOptions\n });\n var newDynamicRules = newSheet ? addDynamicRules(newSheet, data) : null;\n\n if (newSheet) {\n manageSheet({\n index: index,\n context: context,\n sheet: newSheet,\n theme: theme\n });\n }\n\n return [newSheet, newDynamicRules];\n }, [context, theme]),\n sheet = _React$useMemo[0],\n dynamicRules = _React$useMemo[1];\n\n useEffectOrLayoutEffect(function () {\n // We only need to update the rules on a subsequent update and not in the first mount\n if (sheet && dynamicRules && !isFirstMount.current) {\n updateDynamicRules(data, sheet, dynamicRules);\n }\n }, [data]);\n useEffectOrLayoutEffect(function () {\n return (// cleanup only\n function () {\n if (sheet) {\n unmanageSheet({\n index: index,\n context: context,\n sheet: sheet,\n theme: theme\n });\n }\n\n if (sheet && dynamicRules) {\n removeDynamicRules(sheet, dynamicRules);\n }\n }\n );\n }, [sheet]);\n var classes = sheet && dynamicRules ? getSheetClasses(sheet, dynamicRules) : {}; // $FlowFixMe\n\n React.useDebugValue(classes); // $FlowFixMe\n\n React.useDebugValue(theme === noTheme$1 ? 'No theme' : theme);\n React.useEffect(function () {\n isFirstMount.current = false;\n });\n return classes;\n };\n};\n\nvar initialContext = {};\n\nvar JssProvider =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(JssProvider, _Component);\n\n function JssProvider() {\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 = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.managers = {};\n\n _this.createContext = function (parentContext, prevContext) {\n if (prevContext === void 0) {\n prevContext = initialContext;\n }\n\n var _this$props = _this.props,\n registry = _this$props.registry,\n classNamePrefix = _this$props.classNamePrefix,\n jss = _this$props.jss,\n generateId = _this$props.generateId,\n disableStylesGeneration = _this$props.disableStylesGeneration,\n media = _this$props.media,\n id = _this$props.id;\n\n var context = _extends({}, parentContext);\n\n if (registry) {\n context.registry = registry; // This way we identify a new request on the server, because user will create\n // a new Registry instance for each.\n\n if (registry !== _this.registry) {\n // We reset managers because we have to regenerate all sheets for the new request.\n _this.managers = {};\n _this.registry = registry;\n }\n }\n\n context.managers = _this.managers;\n\n if (id !== undefined) {\n context.id = id;\n }\n\n if (generateId !== undefined) {\n context.generateId = generateId;\n } else if (!context.generateId || !prevContext || context.id !== prevContext.id) {\n context.generateId = createGenerateId(context.id);\n }\n\n if (classNamePrefix) {\n context.classNamePrefix = (context.classNamePrefix || '') + classNamePrefix;\n }\n\n if (media !== undefined) {\n context.media = media;\n }\n\n if (jss) {\n context.jss = jss;\n }\n\n if (disableStylesGeneration !== undefined) {\n context.disableStylesGeneration = disableStylesGeneration;\n }\n\n if (prevContext && shallowEqualObjects(prevContext, context)) {\n return prevContext;\n }\n\n return context;\n };\n\n _this.prevContext = void 0;\n _this.generateId = void 0;\n _this.registry = void 0;\n\n _this.renderProvider = function (parentContext) {\n var children = _this.props.children;\n\n var context = _this.createContext(parentContext, _this.prevContext);\n\n _this.prevContext = context;\n return React.createElement(JssContext.Provider, {\n value: context\n }, children);\n };\n\n return _this;\n }\n\n var _proto = JssProvider.prototype;\n\n _proto.render = function render() {\n return React.createElement(JssContext.Consumer, null, this.renderProvider);\n };\n\n return JssProvider;\n}(Component);\n\nJssProvider.propTypes = {\n registry: PropTypes.instanceOf(SheetsRegistry),\n jss: PropTypes.instanceOf(defaultJss$1.constructor),\n generateId: PropTypes.func,\n classNamePrefix: PropTypes.string,\n disableStylesGeneration: PropTypes.bool,\n children: PropTypes.node.isRequired,\n media: PropTypes.string,\n id: PropTypes.shape({\n minify: PropTypes.bool\n })\n};\n\nvar parseStyles = function parseStyles(args) {\n var dynamicStyles = [];\n var staticStyle;\n var labels = []; // Not using ...rest to optimize perf.\n\n for (var key in args) {\n var style = args[key];\n if (!style) continue;\n\n if (typeof style === 'function') {\n dynamicStyles.push(style);\n } else {\n if (!staticStyle) staticStyle = {};\n Object.assign(staticStyle, style);\n\n if (staticStyle.label) {\n if (labels.indexOf(staticStyle.label) === -1) labels.push(staticStyle.label);\n }\n }\n }\n\n var styles = {};\n var label = labels.length === 0 ? 'sc' : labels.join('-');\n\n if (staticStyle) {\n // Label should not leak to the core.\n if ('label' in staticStyle) delete staticStyle.label;\n styles[label] = staticStyle;\n } // When there is only one function rule, we don't need to wrap it.\n\n\n if (dynamicStyles.length === 1) {\n styles.scd = dynamicStyles[0];\n } // We create a new function rule which will call all other function rules\n // and merge the styles they return.\n\n\n if (dynamicStyles.length > 1) {\n styles.scd = function (props) {\n var merged = {};\n\n for (var i = 0; i < dynamicStyles.length; i++) {\n var dynamicStyle = dynamicStyles[i](props);\n if (dynamicStyle) Object.assign(merged, dynamicStyle);\n }\n\n return merged;\n };\n }\n\n return {\n styles: styles,\n label: label\n };\n};\n\nvar shouldForwardPropSymbol = Symbol('react-jss-styled');\n\nvar getShouldForwardProp = function getShouldForwardProp(tagOrComponent, options) {\n var shouldForwardProp = options.shouldForwardProp; // $FlowIgnore that prop shouldn't be there.\n\n var childShouldForwardProp = tagOrComponent[shouldForwardPropSymbol];\n var finalShouldForwardProp = shouldForwardProp || childShouldForwardProp;\n\n if (shouldForwardProp && childShouldForwardProp) {\n finalShouldForwardProp = function finalShouldForwardProp(prop) {\n return childShouldForwardProp(prop) && shouldForwardProp(prop);\n };\n }\n\n return finalShouldForwardProp;\n};\n\nvar getChildProps = function getChildProps(props, shouldForwardProp, isTag) {\n var childProps = {};\n\n for (var prop in props) {\n if (shouldForwardProp) {\n if (shouldForwardProp(prop) === true) {\n childProps[prop] = props[prop];\n }\n\n continue;\n } // We don't want to pass non-dom props to the DOM.\n\n\n if (isTag) {\n if (isPropValid(prop)) {\n childProps[prop] = props[prop];\n }\n\n continue;\n }\n\n childProps[prop] = props[prop];\n }\n\n return childProps;\n};\n\nvar configureStyled = function configureStyled(tagOrComponent, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n theming = _options.theming;\n var isTag = typeof tagOrComponent === 'string';\n var ThemeContext$1 = theming ? theming.context : ThemeContext;\n var shouldForwardProp = getShouldForwardProp(tagOrComponent, options);\n\n var _options2 = options,\n _ = _options2.shouldForwardProp,\n hookOptions = _objectWithoutPropertiesLoose(_options2, [\"shouldForwardProp\"]);\n\n return function createStyledComponent() {\n // eslint-disable-next-line prefer-rest-params\n var _parseStyles = parseStyles(arguments),\n styles = _parseStyles.styles,\n label = _parseStyles.label;\n\n var useStyles = createUseStyles(styles, hookOptions);\n\n var Styled = function Styled(props) {\n var as = props.as,\n className = props.className;\n var theme = React.useContext(ThemeContext$1);\n var propsWithTheme = Object.assign({\n theme: theme\n }, props);\n var classes = useStyles(propsWithTheme);\n var childProps = getChildProps(props, shouldForwardProp, isTag); // $FlowIgnore we don't care label might not exist in classes.\n\n var classNames = ((classes[label] || classes.sc || '') + \" \" + (classes.scd || '')).trim();\n childProps.className = className ? className + \" \" + classNames : classNames;\n\n if (!isTag && shouldForwardProp) {\n // $FlowIgnore we are not supposed to attach random properties to component functions.\n tagOrComponent[shouldForwardPropSymbol] = shouldForwardProp;\n }\n\n if (isTag && as) {\n return React.createElement(as, childProps);\n }\n\n return React.createElement(tagOrComponent, childProps);\n };\n\n return Styled;\n };\n};\n\n/* eslint-disable prefer-rest-params, prefer-spread */\nvar create = function create(css) {\n if (css === void 0) {\n css = defaultCss;\n }\n\n return function createElement(type, props\n /* :: , ..._args: any */\n ) {\n var args = arguments;\n\n if (props && props.css) {\n var className = css(props.css);\n var newProps = Object.assign({}, props);\n newProps.className = props.className ? props.className + \" \" + className : className;\n delete newProps.css;\n args[1] = newProps;\n } // $FlowIgnore\n\n\n return React.createElement.apply(undefined, args);\n };\n};\nvar jsx = create();\n\nexport default withStyles;\nexport { JssContext, JssProvider, create as createJsx, createUseStyles, defaultJss as jss, jsx, configureStyled as styled, withStyles };\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","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\nimport json2mq from 'json2mq';\n\nvar MediaQueryList =\n/*#__PURE__*/\nfunction () {\n function MediaQueryList(targetWindow, query, listener) {\n var _this = this;\n\n this.nativeMediaQueryList = targetWindow.matchMedia(query);\n this.active = true; // Safari doesn't clear up listener with removeListener\n // when the listener is already waiting in the event queue.\n // Having an active flag to make sure the listener is not called\n // after we removeListener.\n\n this.cancellableListener = function () {\n _this.matches = _this.nativeMediaQueryList.matches;\n\n if (_this.active) {\n listener.apply(void 0, arguments);\n }\n };\n\n this.nativeMediaQueryList.addListener(this.cancellableListener);\n this.matches = this.nativeMediaQueryList.matches;\n }\n\n var _proto = MediaQueryList.prototype;\n\n _proto.cancel = function cancel() {\n this.active = false;\n this.nativeMediaQueryList.removeListener(this.cancellableListener);\n };\n\n return MediaQueryList;\n}();\n\n/**\n * Conditionally renders based on whether or not a media query matches.\n */\n\nvar Media =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Media, _React$Component);\n\n function Media() {\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 _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n matches: _this.props.defaultMatches\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateMatches\", function () {\n var matches = _this.mediaQueryList.matches;\n\n _this.setState({\n matches: matches\n });\n\n var onChange = _this.props.onChange;\n\n if (onChange) {\n onChange(matches);\n }\n });\n\n return _this;\n }\n\n var _proto = Media.prototype;\n\n _proto.componentWillMount = function componentWillMount() {\n if (typeof window !== 'object') return;\n var targetWindow = this.props.targetWindow || window;\n !(typeof targetWindow.matchMedia === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, ' does not support `matchMedia`.') : invariant(false) : void 0;\n var query = this.props.query;\n if (typeof query !== 'string') query = json2mq(query);\n this.mediaQueryList = new MediaQueryList(targetWindow, query, this.updateMatches);\n this.updateMatches();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mediaQueryList.cancel();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n render = _this$props.render;\n var matches = this.state.matches;\n return render ? matches ? render() : null : children ? typeof children === 'function' ? children(matches) : !Array.isArray(children) || children.length // Preact defaults to empty children array\n ? matches ? React.Children.only(children) : null : null : null;\n };\n\n return Media;\n}(React.Component);\n\n_defineProperty(Media, \"defaultProps\", {\n defaultMatches: true\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Media.propTypes = {\n defaultMatches: PropTypes.bool,\n query: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.arrayOf(PropTypes.object.isRequired)]).isRequired,\n render: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n targetWindow: PropTypes.object,\n onChange: PropTypes.func\n };\n}\n\nexport default Media;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = 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 _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\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 portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\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 = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n parent.removeChild(_this.node);\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n parentSelector: function parentSelector() {\n return document.body;\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nexports.default = Modal;","\"use strict\";\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 _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\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\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus();\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen();\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus();\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.afterClose();\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n return this.shouldBeClosed() ? null : _react2.default.createElement(\n \"div\",\n {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n },\n _react2.default.createElement(\n \"div\",\n _extends({\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", this.props.aria || {}), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n }),\n this.props.children\n )\n );\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n\";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className;\n\n // eslint-disable-next-line max-len\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\";\n\n // eslint-disable-next-line no-console\n console.log(buffer);\n }\n}\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus();\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n var target;\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof tabbable[x] === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n tabbable[x].focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import { Component, createElement } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(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 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\n/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n\n\n while (current.parentNode) {\n if (isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}\n\n// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};\n\nfunction autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\nvar passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = null;\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions = {\n passive: !instance.props.preventDefault\n };\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error('WrappedComponent lacks a handleClickOutside(event) function for processing outside click events.');\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.props.disableOnClickOutside) return;\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (!WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error('WrappedComponent lacks a function for processing outside click events specified by the handleClickOutside config option.');\n }\n }\n\n this.componentNode = findDOMNode(this.getInstance());\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = findDOMNode(this.getInstance());\n };\n /**\n * Remove all document's event listeners for this component\n */\n\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n };\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _props = this.props,\n excludeScrollbar = _props.excludeScrollbar,\n props = _objectWithoutProperties(_props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + (WrappedComponent.displayName || WrappedComponent.name || 'Component') + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}\n\nexport { IGNORE_CLASS_NAME };\nexport default onClickOutsideHOC;\n","'use strict';\n\nexports.__esModule = true;\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 _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _height = require('dom-helpers/query/height');\n\nvar _height2 = _interopRequireDefault(_height);\n\nvar _offset = require('dom-helpers/query/offset');\n\nvar _offset2 = _interopRequireDefault(_offset);\n\nvar _offsetParent = require('dom-helpers/query/offsetParent');\n\nvar _offsetParent2 = _interopRequireDefault(_offsetParent);\n\nvar _scrollTop = require('dom-helpers/query/scrollTop');\n\nvar _scrollTop2 = _interopRequireDefault(_scrollTop);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _getDocumentHeight = require('./utils/getDocumentHeight');\n\nvar _getDocumentHeight2 = _interopRequireDefault(_getDocumentHeight);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _ownerWindow = require('./utils/ownerWindow');\n\nvar _ownerWindow2 = _interopRequireDefault(_ownerWindow);\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\n/**\n * The `` component toggles `position: fixed;` on and off, emulating\n * the effect found with `position: sticky;`.\n */\nvar Affix = function (_React$Component) {\n _inherits(Affix, _React$Component);\n\n function Affix(props, context) {\n _classCallCheck(this, Affix);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.onWindowScroll = function () {\n _this.onUpdate();\n };\n\n _this.onDocumentClick = function () {\n (0, _requestAnimationFrame2.default)(function () {\n return _this.onUpdate();\n });\n };\n\n _this.onUpdate = function () {\n if (!_this._isMounted) {\n return;\n }\n\n var _this$props = _this.props,\n offsetTop = _this$props.offsetTop,\n viewportOffsetTop = _this$props.viewportOffsetTop;\n\n var scrollTop = (0, _scrollTop2.default)((0, _ownerWindow2.default)(_this));\n var positionTopMin = scrollTop + (viewportOffsetTop || 0);\n\n if (positionTopMin <= offsetTop) {\n _this.updateState('top', null, null);\n return;\n }\n\n if (positionTopMin > _this.getPositionTopMax()) {\n if (_this.state.affixed === 'bottom') {\n _this.updateStateAtBottom();\n } else {\n // Setting position away from `fixed` can change the offset parent of\n // the affix, so we can't calculate the correct position until after\n // we've updated its position.\n _this.setState({\n affixed: 'bottom',\n position: 'absolute',\n top: null\n }, function () {\n if (!_this._isMounted) {\n return;\n }\n\n _this.updateStateAtBottom();\n });\n }\n return;\n }\n\n _this.updateState('affix', 'fixed', viewportOffsetTop);\n };\n\n _this.getPositionTopMax = function () {\n var documentHeight = (0, _getDocumentHeight2.default)((0, _ownerDocument2.default)(_this));\n var height = (0, _height2.default)(_reactDom2.default.findDOMNode(_this));\n\n return documentHeight - height - _this.props.offsetBottom;\n };\n\n _this.updateState = function (affixed, position, top) {\n if (affixed === _this.state.affixed && position === _this.state.position && top === _this.state.top) {\n return;\n }\n\n var upperName = affixed === 'affix' ? '' : affixed.charAt(0).toUpperCase() + affixed.substr(1);\n\n if (_this.props['onAffix' + upperName]) {\n _this.props['onAffix' + upperName]();\n }\n\n _this.setState({ affixed: affixed, position: position, top: top }, function () {\n if (_this.props['onAffixed' + upperName]) {\n _this.props['onAffixed' + upperName]();\n }\n });\n };\n\n _this.updateStateAtBottom = function () {\n var positionTopMax = _this.getPositionTopMax();\n var offsetParent = (0, _offsetParent2.default)(_reactDom2.default.findDOMNode(_this));\n var parentTop = (0, _offset2.default)(offsetParent).top;\n\n _this.updateState('bottom', 'absolute', positionTopMax - parentTop);\n };\n\n _this.state = {\n affixed: 'top',\n position: null,\n top: null\n };\n\n _this._needPositionUpdate = false;\n return _this;\n }\n\n Affix.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n this._windowScrollListener = (0, _addEventListener2.default)((0, _ownerWindow2.default)(this), 'scroll', function () {\n return _this2.onWindowScroll();\n });\n this._documentClickListener = (0, _addEventListener2.default)((0, _ownerDocument2.default)(this), 'click', function () {\n return _this2.onDocumentClick();\n });\n\n this.onUpdate();\n };\n\n Affix.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps() {\n this._needPositionUpdate = true;\n };\n\n Affix.prototype.componentDidUpdate = function componentDidUpdate() {\n if (this._needPositionUpdate) {\n this._needPositionUpdate = false;\n this.onUpdate();\n }\n };\n\n Affix.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n\n if (this._windowScrollListener) {\n this._windowScrollListener.remove();\n }\n if (this._documentClickListener) {\n this._documentClickListener.remove();\n }\n };\n\n Affix.prototype.render = function render() {\n var child = _react2.default.Children.only(this.props.children);\n var _child$props = child.props,\n className = _child$props.className,\n style = _child$props.style;\n var _state = this.state,\n affixed = _state.affixed,\n position = _state.position,\n top = _state.top;\n\n var positionStyle = { position: position, top: top };\n\n var affixClassName = void 0;\n var affixStyle = void 0;\n if (affixed === 'top') {\n affixClassName = this.props.topClassName;\n affixStyle = this.props.topStyle;\n } else if (affixed === 'bottom') {\n affixClassName = this.props.bottomClassName;\n affixStyle = this.props.bottomStyle;\n } else {\n affixClassName = this.props.affixClassName;\n affixStyle = this.props.affixStyle;\n }\n\n return _react2.default.cloneElement(child, {\n className: (0, _classnames2.default)(affixClassName, className),\n style: _extends({}, positionStyle, affixStyle, style)\n });\n };\n\n return Affix;\n}(_react2.default.Component);\n\nAffix.propTypes = {\n /**\n * Pixels to offset from top of screen when calculating position\n */\n offsetTop: _propTypes2.default.number,\n\n /**\n * When affixed, pixels to offset from top of viewport\n */\n viewportOffsetTop: _propTypes2.default.number,\n\n /**\n * Pixels to offset from bottom of screen when calculating position\n */\n offsetBottom: _propTypes2.default.number,\n\n /**\n * CSS class or classes to apply when at top\n */\n topClassName: _propTypes2.default.string,\n\n /**\n * Style to apply when at top\n */\n topStyle: _propTypes2.default.object,\n\n /**\n * CSS class or classes to apply when affixed\n */\n affixClassName: _propTypes2.default.string,\n\n /**\n * Style to apply when affixed\n */\n affixStyle: _propTypes2.default.object,\n\n /**\n * CSS class or classes to apply when at bottom\n */\n bottomClassName: _propTypes2.default.string,\n\n /**\n * Style to apply when at bottom\n */\n bottomStyle: _propTypes2.default.object,\n\n /**\n * Callback fired right before the `affixStyle` and `affixClassName` props are rendered\n */\n onAffix: _propTypes2.default.func,\n\n /**\n * Callback fired after the component `affixStyle` and `affixClassName` props have been rendered\n */\n onAffixed: _propTypes2.default.func,\n\n /**\n * Callback fired right before the `topStyle` and `topClassName` props are rendered\n */\n onAffixTop: _propTypes2.default.func,\n\n /**\n * Callback fired after the component `topStyle` and `topClassName` props have been rendered\n */\n onAffixedTop: _propTypes2.default.func,\n\n /**\n * Callback fired right before the `bottomStyle` and `bottomClassName` props are rendered\n */\n onAffixBottom: _propTypes2.default.func,\n\n /**\n * Callback fired after the component `bottomStyle` and `bottomClassName` props have been rendered\n */\n onAffixedBottom: _propTypes2.default.func\n};\n\nAffix.defaultProps = {\n offsetTop: 0,\n viewportOffsetTop: null,\n offsetBottom: 0\n};\n\nexports.default = Affix;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\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 _offset = require('dom-helpers/query/offset');\n\nvar _offset2 = _interopRequireDefault(_offset);\n\nvar _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');\n\nvar _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Affix = require('./Affix');\n\nvar _Affix2 = _interopRequireDefault(_Affix);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _getDocumentHeight = require('./utils/getDocumentHeight');\n\nvar _getDocumentHeight2 = _interopRequireDefault(_getDocumentHeight);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _ownerWindow = require('./utils/ownerWindow');\n\nvar _ownerWindow2 = _interopRequireDefault(_ownerWindow);\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\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 displayName = 'AutoAffix';\n\nvar propTypes = _extends({}, _Affix2.default.propTypes, {\n /**\n * The logical container node or component for determining offset from bottom\n * of viewport, or a function that returns it\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n /**\n * Automatically set width when affixed\n */\n autoWidth: _propTypes2.default.bool\n});\n\n// This intentionally doesn't inherit default props from ``, so that the\n// auto-calculated offsets can apply.\nvar defaultProps = {\n viewportOffsetTop: 0,\n autoWidth: true\n};\n\n/**\n * The `` component wraps `` to automatically calculate\n * offsets in many common cases.\n */\n\nvar AutoAffix = function (_React$Component) {\n _inherits(AutoAffix, _React$Component);\n\n function AutoAffix(props, context) {\n _classCallCheck(this, AutoAffix);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.onWindowScroll = function () {\n _this.onUpdate();\n };\n\n _this.onWindowResize = function () {\n if (_this.props.autoWidth) {\n (0, _requestAnimationFrame2.default)(function () {\n return _this.onUpdate();\n });\n }\n };\n\n _this.onDocumentClick = function () {\n (0, _requestAnimationFrame2.default)(function () {\n return _this.onUpdate();\n });\n };\n\n _this.onUpdate = function () {\n if (!_this._isMounted) {\n return;\n }\n\n var _getOffset = (0, _offset2.default)(_this.positioner),\n offsetTop = _getOffset.top,\n width = _getOffset.width;\n\n var container = (0, _getContainer2.default)(_this.props.container);\n var offsetBottom = void 0;\n if (container) {\n var documentHeight = (0, _getDocumentHeight2.default)((0, _ownerDocument2.default)(_this));\n\n var _getOffset2 = (0, _offset2.default)(container),\n top = _getOffset2.top,\n height = _getOffset2.height;\n\n offsetBottom = documentHeight - top - height;\n } else {\n offsetBottom = null;\n }\n\n _this.updateState(offsetTop, offsetBottom, width);\n };\n\n _this.updateState = function (offsetTop, offsetBottom, width) {\n if (offsetTop === _this.state.offsetTop && offsetBottom === _this.state.offsetBottom && width === _this.state.width) {\n return;\n }\n\n _this.setState({ offsetTop: offsetTop, offsetBottom: offsetBottom, width: width });\n };\n\n _this.state = {\n offsetTop: null,\n offsetBottom: null,\n width: null\n };\n return _this;\n }\n\n AutoAffix.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n this._windowScrollListener = (0, _addEventListener2.default)((0, _ownerWindow2.default)(this), 'scroll', function () {\n return _this2.onWindowScroll();\n });\n\n this._windowResizeListener = (0, _addEventListener2.default)((0, _ownerWindow2.default)(this), 'resize', function () {\n return _this2.onWindowResize();\n });\n\n this._documentClickListener = (0, _addEventListener2.default)((0, _ownerDocument2.default)(this), 'click', function () {\n return _this2.onDocumentClick();\n });\n\n this.onUpdate();\n };\n\n AutoAffix.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps() {\n this._needPositionUpdate = true;\n };\n\n AutoAffix.prototype.componentDidUpdate = function componentDidUpdate() {\n if (this._needPositionUpdate) {\n this._needPositionUpdate = false;\n this.onUpdate();\n }\n };\n\n AutoAffix.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n\n if (this._windowScrollListener) {\n this._windowScrollListener.remove();\n }\n if (this._documentClickListener) {\n this._documentClickListener.remove();\n }\n if (this._windowResizeListener) {\n this._windowResizeListener.remove();\n }\n };\n\n AutoAffix.prototype.render = function render() {\n var _this3 = this;\n\n var _props = this.props,\n autoWidth = _props.autoWidth,\n viewportOffsetTop = _props.viewportOffsetTop,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['autoWidth', 'viewportOffsetTop', 'children']);\n\n var _state = this.state,\n offsetTop = _state.offsetTop,\n offsetBottom = _state.offsetBottom,\n width = _state.width;\n\n\n delete props.container;\n\n var effectiveOffsetTop = Math.max(offsetTop, viewportOffsetTop || 0);\n\n var _props2 = this.props,\n affixStyle = _props2.affixStyle,\n bottomStyle = _props2.bottomStyle;\n\n if (autoWidth) {\n affixStyle = _extends({ width: width }, affixStyle);\n bottomStyle = _extends({ width: width }, bottomStyle);\n }\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('div', { ref: function ref(c) {\n _this3.positioner = c;\n } }),\n _react2.default.createElement(\n _Affix2.default,\n _extends({}, props, {\n offsetTop: effectiveOffsetTop,\n viewportOffsetTop: viewportOffsetTop,\n offsetBottom: offsetBottom,\n affixStyle: affixStyle,\n bottomStyle: bottomStyle\n }),\n children\n )\n );\n };\n\n return AutoAffix;\n}(_react2.default.Component);\n\nAutoAffix.displayName = displayName;\nAutoAffix.propTypes = propTypes;\nAutoAffix.defaultProps = defaultProps;\n\nexports.default = AutoAffix;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\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\n/**\n * The `` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._mountOverlayTarget = function () {\n if (!_this._overlayTarget) {\n _this._overlayTarget = document.createElement('div');\n _this._portalContainerNode = (0, _getContainer2.default)(_this.props.container, (0, _ownerDocument2.default)(_this).body);\n _this._portalContainerNode.appendChild(_this._overlayTarget);\n }\n }, _this._unmountOverlayTarget = function () {\n if (_this._overlayTarget) {\n _this._portalContainerNode.removeChild(_this._overlayTarget);\n _this._overlayTarget = null;\n }\n _this._portalContainerNode = null;\n }, _this._renderOverlay = function () {\n var overlay = !_this.props.children ? null : _react2.default.Children.only(_this.props.children);\n\n // Save reference for future access.\n if (overlay !== null) {\n _this._mountOverlayTarget();\n\n var initialRender = !_this._overlayInstance;\n\n _this._overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this._overlayTarget, function () {\n if (initialRender && _this.props.onRendered) {\n _this.props.onRendered();\n }\n });\n } else {\n // Unrender if the component is null for transitions to null\n _this._unrenderOverlay();\n _this._unmountOverlayTarget();\n }\n }, _this._unrenderOverlay = function () {\n if (_this._overlayTarget) {\n _reactDom2.default.unmountComponentAtNode(_this._overlayTarget);\n _this._overlayInstance = null;\n }\n }, _this.getMountNode = function () {\n return _this._overlayTarget;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this._renderOverlay();\n };\n\n Portal.prototype.componentDidUpdate = function componentDidUpdate() {\n this._renderOverlay();\n };\n\n Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (this._overlayTarget && nextProps.container !== this.props.container) {\n this._portalContainerNode.removeChild(this._overlayTarget);\n this._portalContainerNode = (0, _getContainer2.default)(nextProps.container, (0, _ownerDocument2.default)(this).body);\n this._portalContainerNode.appendChild(this._overlayTarget);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this._unrenderOverlay();\n this._unmountOverlayTarget();\n };\n\n Portal.prototype.render = function render() {\n return null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = Portal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\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 _activeElement = require('dom-helpers/activeElement');\n\nvar _activeElement2 = _interopRequireDefault(_activeElement);\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _deprecated = require('prop-types-extra/lib/deprecated');\n\nvar _deprecated2 = _interopRequireDefault(_deprecated);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ModalManager = require('./ModalManager');\n\nvar _ModalManager2 = _interopRequireDefault(_ModalManager);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _RefHolder = require('./RefHolder');\n\nvar _RefHolder2 = _interopRequireDefault(_RefHolder);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _addFocusListener = require('./utils/addFocusListener');\n\nvar _addFocusListener2 = _interopRequireDefault(_addFocusListener);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\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; } /* eslint-disable react/prop-types */\n\nvar modalManager = new _ModalManager2.default();\n\n/**\n * Love them or hate them, `` provides a solid foundation for creating dialogs, lightboxes, or whatever else.\n * The Modal component renders its `children` node in front of a backdrop component.\n *\n * The Modal offers a few helpful features over using just a `` component and some styles:\n *\n * - Manages dialog stacking when one-at-a-time just isn't enough.\n * - Creates a backdrop, for disabling interaction below the modal.\n * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.\n * - It disables scrolling of the page content while open.\n * - Adds the appropriate ARIA roles are automatically.\n * - Easily pluggable animations via a `` component.\n *\n * Note that, in the same way the backdrop element prevents users from clicking or interacting\n * with the page content underneath the Modal, Screen readers also need to be signaled to not to\n * interact with page content while the Modal is open. To do this, we use a common technique of applying\n * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for\n * a Modal to be truly modal, it should have a `container` that is _outside_ your app's\n * React hierarchy (such as the default: document.body).\n */\n\nvar Modal = function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n function Modal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Modal.prototype.omitProps = function omitProps(props, propTypes) {\n\n var keys = Object.keys(props);\n var newProps = {};\n keys.map(function (prop) {\n if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) {\n newProps[prop] = props[prop];\n }\n });\n\n return newProps;\n };\n\n Modal.prototype.render = function render() {\n var _props = this.props,\n show = _props.show,\n container = _props.container,\n children = _props.children,\n Transition = _props.transition,\n backdrop = _props.backdrop,\n className = _props.className,\n style = _props.style,\n onExit = _props.onExit,\n onExiting = _props.onExiting,\n onEnter = _props.onEnter,\n onEntering = _props.onEntering,\n onEntered = _props.onEntered;\n\n\n var dialog = _react2.default.Children.only(children);\n var filteredProps = this.omitProps(this.props, Modal.propTypes);\n\n var mountModal = show || Transition && !this.state.exited;\n if (!mountModal) {\n return null;\n }\n\n var _dialog$props = dialog.props,\n role = _dialog$props.role,\n tabIndex = _dialog$props.tabIndex;\n\n\n if (role === undefined || tabIndex === undefined) {\n dialog = (0, _react.cloneElement)(dialog, {\n role: role === undefined ? 'document' : role,\n tabIndex: tabIndex == null ? '-1' : tabIndex\n });\n }\n\n if (Transition) {\n dialog = _react2.default.createElement(\n Transition,\n {\n appear: true,\n unmountOnExit: true,\n 'in': show,\n onExit: onExit,\n onExiting: onExiting,\n onExited: this.handleHidden,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n },\n dialog\n );\n }\n\n return _react2.default.createElement(\n _Portal2.default,\n {\n ref: this.setMountNode,\n container: container,\n onRendered: this.onPortalRendered\n },\n _react2.default.createElement(\n 'div',\n _extends({\n ref: this.setModalNodeRef,\n role: role || 'dialog'\n }, filteredProps, {\n style: style,\n className: className\n }),\n backdrop && this.renderBackdrop(),\n _react2.default.createElement(\n _RefHolder2.default,\n { ref: this.setDialogRef },\n dialog\n )\n )\n );\n };\n\n Modal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.show) {\n this.setState({ exited: false });\n } else if (!nextProps.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({ exited: true });\n }\n };\n\n Modal.prototype.UNSAFE_componentWillUpdate = function UNSAFE_componentWillUpdate(nextProps) {\n if (!this.props.show && nextProps.show) {\n this.checkForFocus();\n }\n };\n\n Modal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n if (this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var transition = this.props.transition;\n\n\n if (prevProps.show && !this.props.show && !transition) {\n // Otherwise handleHidden will call this.\n this.onHide();\n } else if (!prevProps.show && this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentWillUnmount = function componentWillUnmount() {\n var _props2 = this.props,\n show = _props2.show,\n transition = _props2.transition;\n\n\n this._isMounted = false;\n\n if (show || transition && !this.state.exited) {\n this.onHide();\n }\n };\n\n Modal.prototype.autoFocus = function autoFocus() {\n if (!this.props.autoFocus) {\n return;\n }\n\n var dialogElement = this.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(this));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n this.lastFocus = currentActiveElement;\n\n if (!dialogElement.hasAttribute('tabIndex')) {\n (0, _warning2.default)(false, 'The modal content node does not accept focus. For the benefit of ' + 'assistive technologies, the tabIndex of the node is being set ' + 'to \"-1\".');\n\n dialogElement.setAttribute('tabIndex', -1);\n }\n\n dialogElement.focus();\n }\n };\n\n Modal.prototype.restoreLastFocus = function restoreLastFocus() {\n // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n if (this.lastFocus && this.lastFocus.focus) {\n this.lastFocus.focus();\n this.lastFocus = null;\n }\n };\n\n Modal.prototype.getDialogElement = function getDialogElement() {\n return _reactDom2.default.findDOMNode(this.dialog);\n };\n\n Modal.prototype.isTopModal = function isTopModal() {\n return this.props.manager.isTopModal(this);\n };\n\n return Modal;\n}(_react2.default.Component);\n\nModal.propTypes = _extends({}, _Portal2.default.propTypes, {\n\n /**\n * Set the visibility of the Modal\n */\n show: _propTypes2.default.bool,\n\n /**\n * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.\n *\n * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the\n * page content can be placed behind a virtual backdrop as well as a visual one.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n /**\n * A callback fired when the Modal is opening.\n */\n onShow: _propTypes2.default.func,\n\n /**\n * A callback fired when either the backdrop is clicked, or the escape key is pressed.\n *\n * The `onHide` callback only signals intent from the Modal,\n * you must actually set the `show` prop to `false` for the Modal to close.\n */\n onHide: _propTypes2.default.func,\n\n /**\n * Include a backdrop component.\n */\n backdrop: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['static'])]),\n\n /**\n * A function that returns a backdrop component. Useful for custom\n * backdrop rendering.\n *\n * ```js\n * renderBackdrop={props => }\n * ```\n */\n renderBackdrop: _propTypes2.default.func,\n\n /**\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n */\n onEscapeKeyDown: _propTypes2.default.func,\n\n /**\n * Support for this function will be deprecated. Please use `onEscapeKeyDown` instead\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n * @deprecated\n */\n onEscapeKeyUp: (0, _deprecated2.default)(_propTypes2.default.func, 'Please use onEscapeKeyDown instead for consistency'),\n\n /**\n * A callback fired when the backdrop, if specified, is clicked.\n */\n onBackdropClick: _propTypes2.default.func,\n\n /**\n * A style object for the backdrop component.\n */\n backdropStyle: _propTypes2.default.object,\n\n /**\n * A css class or classes for the backdrop component.\n */\n backdropClassName: _propTypes2.default.string,\n\n /**\n * A css class or set of classes applied to the modal container when the modal is open,\n * and removed when it is closed.\n */\n containerClassName: _propTypes2.default.string,\n\n /**\n * Close the modal when escape key is pressed\n */\n keyboard: _propTypes2.default.bool,\n\n /**\n * A `react-transition-group@2.0.0` `` component used\n * to control animations for the dialog component.\n */\n transition: _elementType2.default,\n\n /**\n * A `react-transition-group@2.0.0` `` component used\n * to control animations for the backdrop components.\n */\n backdropTransition: _elementType2.default,\n\n /**\n * When `true` The modal will automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes. This also\n * works correctly with any Modal children that have the `autoFocus` prop.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n autoFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will prevent focus from leaving the Modal while open.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n enforceFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will restore focus to previously focused element once\n * modal is hidden\n */\n restoreFocus: _propTypes2.default.bool,\n\n /**\n * Callback fired before the Modal transitions in\n */\n onEnter: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition in\n */\n onEntering: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning in\n */\n onEntered: _propTypes2.default.func,\n\n /**\n * Callback fired right before the Modal transitions out\n */\n onExit: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition out\n */\n onExiting: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning out\n */\n onExited: _propTypes2.default.func,\n\n /**\n * A ModalManager instance used to track and manage the state of open\n * Modals. Useful when customizing how modals interact within a container\n */\n manager: _propTypes2.default.object.isRequired\n});\nModal.defaultProps = {\n show: false,\n backdrop: true,\n keyboard: true,\n autoFocus: true,\n enforceFocus: true,\n restoreFocus: true,\n onHide: function onHide() {},\n manager: modalManager,\n renderBackdrop: function renderBackdrop(props) {\n return _react2.default.createElement('div', props);\n }\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.state = { exited: !this.props.show };\n\n this.renderBackdrop = function () {\n var _props3 = _this2.props,\n backdropStyle = _props3.backdropStyle,\n backdropClassName = _props3.backdropClassName,\n renderBackdrop = _props3.renderBackdrop,\n Transition = _props3.backdropTransition;\n\n\n var backdropRef = function backdropRef(ref) {\n return _this2.backdrop = ref;\n };\n\n var backdrop = renderBackdrop({\n ref: backdropRef,\n style: backdropStyle,\n className: backdropClassName,\n onClick: _this2.handleBackdropClick\n });\n\n if (Transition) {\n backdrop = _react2.default.createElement(\n Transition,\n {\n appear: true,\n 'in': _this2.props.show\n },\n backdrop\n );\n }\n\n return backdrop;\n };\n\n this.onPortalRendered = function () {\n _this2.autoFocus();\n\n if (_this2.props.onShow) {\n _this2.props.onShow();\n }\n };\n\n this.onShow = function () {\n var doc = (0, _ownerDocument2.default)(_this2);\n var container = (0, _getContainer2.default)(_this2.props.container, doc.body);\n\n _this2.props.manager.add(_this2, container, _this2.props.containerClassName);\n\n _this2._onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this2.handleDocumentKeyDown);\n\n _this2._onDocumentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this2.handleDocumentKeyUp);\n\n _this2._onFocusinListener = (0, _addFocusListener2.default)(_this2.enforceFocus);\n };\n\n this.onHide = function () {\n _this2.props.manager.remove(_this2);\n\n _this2._onDocumentKeydownListener.remove();\n\n _this2._onDocumentKeyupListener.remove();\n\n _this2._onFocusinListener.remove();\n\n if (_this2.props.restoreFocus) {\n _this2.restoreLastFocus();\n }\n };\n\n this.setMountNode = function (ref) {\n _this2.mountNode = ref ? ref.getMountNode() : ref;\n };\n\n this.setModalNodeRef = function (ref) {\n _this2.modalNode = ref;\n };\n\n this.setDialogRef = function (ref) {\n _this2.dialog = ref;\n };\n\n this.handleHidden = function () {\n _this2.setState({ exited: true });\n _this2.onHide();\n\n if (_this2.props.onExited) {\n var _props4;\n\n (_props4 = _this2.props).onExited.apply(_props4, arguments);\n }\n };\n\n this.handleBackdropClick = function (e) {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (_this2.props.onBackdropClick) {\n _this2.props.onBackdropClick(e);\n }\n\n if (_this2.props.backdrop === true) {\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyDown = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyDown) {\n _this2.props.onEscapeKeyDown(e);\n }\n\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyUp = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyUp) {\n _this2.props.onEscapeKeyUp(e);\n }\n }\n };\n\n this.checkForFocus = function () {\n if (_inDOM2.default) {\n _this2.lastFocus = (0, _activeElement2.default)();\n }\n };\n\n this.enforceFocus = function () {\n if (!_this2.props.enforceFocus || !_this2._isMounted || !_this2.isTopModal()) {\n return;\n }\n\n var dialogElement = _this2.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(_this2));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n dialogElement.focus();\n }\n };\n};\n\nModal.Manager = _ModalManager2.default;\n\nexports.default = Modal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _class = require('dom-helpers/class');\n\nvar _class2 = _interopRequireDefault(_class);\n\nvar _style = require('dom-helpers/style');\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _scrollbarSize = require('dom-helpers/util/scrollbarSize');\n\nvar _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);\n\nvar _isOverflowing = require('./utils/isOverflowing');\n\nvar _isOverflowing2 = _interopRequireDefault(_isOverflowing);\n\nvar _manageAriaHidden = require('./utils/manageAriaHidden');\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 findIndexOf(arr, cb) {\n var idx = -1;\n arr.some(function (d, i) {\n if (cb(d, i)) {\n idx = i;\n return true;\n }\n });\n return idx;\n}\n\nfunction findContainer(data, modal) {\n return findIndexOf(data, function (d) {\n return d.modals.indexOf(modal) !== -1;\n });\n}\n\nfunction setContainerStyle(state, container) {\n var style = { overflow: 'hidden' };\n\n // we are only interested in the actual `style` here\n // becasue we will override it\n state.style = {\n overflow: container.style.overflow,\n paddingRight: container.style.paddingRight\n };\n\n if (state.overflowing) {\n // use computed style, here to get the real padding\n // to add our scrollbar width\n style.paddingRight = parseInt((0, _style2.default)(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2.default)() + 'px';\n }\n\n (0, _style2.default)(container, style);\n}\n\nfunction removeContainerStyle(_ref, container) {\n var style = _ref.style;\n\n\n Object.keys(style).forEach(function (key) {\n return container.style[key] = style[key];\n });\n}\n/**\n * Proper state managment for containers and the modals in those containers.\n *\n * @internal Used by the Modal to ensure proper styling of containers.\n */\n\nvar ModalManager = function ModalManager() {\n var _this = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$hideSiblingNode = _ref2.hideSiblingNodes,\n hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,\n _ref2$handleContainer = _ref2.handleContainerOverflow,\n handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;\n\n _classCallCheck(this, ModalManager);\n\n this.add = function (modal, container, className) {\n var modalIdx = _this.modals.indexOf(modal);\n var containerIdx = _this.containers.indexOf(container);\n\n if (modalIdx !== -1) {\n return modalIdx;\n }\n\n modalIdx = _this.modals.length;\n _this.modals.push(modal);\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.hideSiblings)(container, modal.modalNode);\n }\n\n if (containerIdx !== -1) {\n _this.data[containerIdx].modals.push(modal);\n return modalIdx;\n }\n\n var data = {\n modals: [modal],\n //right now only the first modal of a container will have its classes applied\n classes: className ? className.split(/\\s+/) : [],\n\n overflowing: (0, _isOverflowing2.default)(container)\n };\n\n if (_this.handleContainerOverflow) {\n setContainerStyle(data, container);\n }\n\n data.classes.forEach(_class2.default.addClass.bind(null, container));\n\n _this.containers.push(container);\n _this.data.push(data);\n\n return modalIdx;\n };\n\n this.remove = function (modal) {\n var modalIdx = _this.modals.indexOf(modal);\n\n if (modalIdx === -1) {\n return;\n }\n\n var containerIdx = findContainer(_this.data, modal);\n var data = _this.data[containerIdx];\n var container = _this.containers[containerIdx];\n\n data.modals.splice(data.modals.indexOf(modal), 1);\n\n _this.modals.splice(modalIdx, 1);\n\n // if that was the last modal in a container,\n // clean up the container\n if (data.modals.length === 0) {\n data.classes.forEach(_class2.default.removeClass.bind(null, container));\n\n if (_this.handleContainerOverflow) {\n removeContainerStyle(data, container);\n }\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.showSiblings)(container, modal.modalNode);\n }\n _this.containers.splice(containerIdx, 1);\n _this.data.splice(containerIdx, 1);\n } else if (_this.hideSiblingNodes) {\n //otherwise make sure the next top modal is visible to a SR\n (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].modalNode);\n }\n };\n\n this.isTopModal = function (modal) {\n return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal;\n };\n\n this.hideSiblingNodes = hideSiblingNodes;\n this.handleContainerOverflow = handleContainerOverflow;\n this.modals = [];\n this.containers = [];\n this.data = [];\n};\n\nexports.default = ModalManager;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\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 _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _Position = require('./Position');\n\nvar _Position2 = _interopRequireDefault(_Position);\n\nvar _RootCloseWrapper = require('./RootCloseWrapper');\n\nvar _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);\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\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\n/**\n * Built on top of `` and ``, the overlay component is great for custom tooltip overlays.\n */\nvar Overlay = function (_React$Component) {\n _inherits(Overlay, _React$Component);\n\n function Overlay(props, context) {\n _classCallCheck(this, Overlay);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.handleHidden = function () {\n _this.setState({ exited: true });\n\n if (_this.props.onExited) {\n var _this$props;\n\n (_this$props = _this.props).onExited.apply(_this$props, arguments);\n }\n };\n\n _this.state = { exited: !props.show };\n _this.onHiddenListener = _this.handleHidden.bind(_this);\n return _this;\n }\n\n Overlay.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.show) {\n this.setState({ exited: false });\n } else if (!nextProps.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({ exited: true });\n }\n };\n\n Overlay.prototype.render = function render() {\n var _props = this.props,\n container = _props.container,\n containerPadding = _props.containerPadding,\n target = _props.target,\n placement = _props.placement,\n shouldUpdatePosition = _props.shouldUpdatePosition,\n rootClose = _props.rootClose,\n children = _props.children,\n Transition = _props.transition,\n props = _objectWithoutProperties(_props, ['container', 'containerPadding', 'target', 'placement', 'shouldUpdatePosition', 'rootClose', 'children', 'transition']);\n\n // Don't un-render the overlay while it's transitioning out.\n\n\n var mountOverlay = props.show || Transition && !this.state.exited;\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n var child = children;\n\n // Position is be inner-most because it adds inline styles into the child,\n // which the other wrappers don't forward correctly.\n child = _react2.default.createElement(\n _Position2.default,\n { container: container, containerPadding: containerPadding, target: target, placement: placement, shouldUpdatePosition: shouldUpdatePosition },\n child\n );\n\n if (Transition) {\n var onExit = props.onExit,\n onExiting = props.onExiting,\n onEnter = props.onEnter,\n onEntering = props.onEntering,\n onEntered = props.onEntered;\n\n // This animates the child node by injecting props, so it must precede\n // anything that adds a wrapping div.\n\n child = _react2.default.createElement(\n Transition,\n {\n 'in': props.show,\n appear: true,\n onExit: onExit,\n onExiting: onExiting,\n onExited: this.onHiddenListener,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n },\n child\n );\n }\n\n // This goes after everything else because it adds a wrapping div.\n if (rootClose) {\n child = _react2.default.createElement(\n _RootCloseWrapper2.default,\n {\n onRootClose: props.onHide,\n event: props.rootCloseEvent\n },\n child\n );\n }\n\n return _react2.default.createElement(\n _Portal2.default,\n { container: container },\n child\n );\n };\n\n return Overlay;\n}(_react2.default.Component);\n\nOverlay.propTypes = _extends({}, _Portal2.default.propTypes, _Position2.default.propTypes, {\n\n /**\n * Set the visibility of the Overlay\n */\n show: _propTypes2.default.bool,\n\n /**\n * Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay\n */\n rootClose: _propTypes2.default.bool,\n\n /**\n * Specify event for toggling overlay\n */\n rootCloseEvent: _RootCloseWrapper2.default.propTypes.event,\n\n /**\n * A Callback fired by the Overlay when it wishes to be hidden.\n *\n * __required__ when `rootClose` is `true`.\n *\n * @type func\n */\n onHide: function onHide(props) {\n var propType = _propTypes2.default.func;\n if (props.rootClose) {\n propType = propType.isRequired;\n }\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return propType.apply(undefined, [props].concat(args));\n },\n\n\n /**\n * A `react-transition-group@2.0.0` `` component\n * used to animate the overlay as it changes visibility.\n */\n transition: _elementType2.default,\n\n /**\n * Callback fired before the Overlay transitions in\n */\n onEnter: _propTypes2.default.func,\n\n /**\n * Callback fired as the Overlay begins to transition in\n */\n onEntering: _propTypes2.default.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning in\n */\n onEntered: _propTypes2.default.func,\n\n /**\n * Callback fired right before the Overlay transitions out\n */\n onExit: _propTypes2.default.func,\n\n /**\n * Callback fired as the Overlay begins to transition out\n */\n onExiting: _propTypes2.default.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning out\n */\n onExited: _propTypes2.default.func\n});\n\nexports.default = Overlay;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _LegacyPortal = require('./LegacyPortal');\n\nvar _LegacyPortal2 = _interopRequireDefault(_LegacyPortal);\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\n/**\n * The `` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\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, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getMountNode = function () {\n return _this._portalContainerNode;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n if (!_inDOM2.default) {\n return;\n }\n\n var container = this.props.container;\n\n if (typeof container === 'function') {\n container = container();\n }\n\n if (container && !_reactDom2.default.findDOMNode(container)) {\n // The container is a React component that has not yet been rendered.\n // Don't set the container node yet.\n return;\n }\n\n this.setContainer(container);\n };\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n if (!this._portalContainerNode) {\n this.setContainer(this.props.container);\n this.forceUpdate(this.props.onRendered);\n } else if (this.props.onRendered) {\n this.props.onRendered();\n }\n };\n\n Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.container !== this.props.container) {\n this.setContainer(nextProps.container);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._portalContainerNode = null;\n };\n\n Portal.prototype.setContainer = function setContainer(container) {\n this._portalContainerNode = (0, _getContainer2.default)(container, (0, _ownerDocument2.default)(this).body);\n };\n\n Portal.prototype.render = function render() {\n return this.props.children && this._portalContainerNode ? _reactDom2.default.createPortal(this.props.children, this._portalContainerNode) : null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = _reactDom2.default.createPortal ? Portal : _LegacyPortal2.default;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\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 _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _calculatePosition = require('./utils/calculatePosition');\n\nvar _calculatePosition2 = _interopRequireDefault(_calculatePosition);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\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\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\n/**\n * The Position component calculates the coordinates for its child, to position\n * it relative to a `target` component or node. Useful for creating callouts\n * and tooltips, the Position component injects a `style` props with `left` and\n * `top` values for positioning your component.\n *\n * It also injects \"arrow\" `left`, and `top` values for styling callout arrows\n * for giving your components a sense of directionality.\n */\nvar Position = function (_React$Component) {\n _inherits(Position, _React$Component);\n\n function Position(props, context) {\n _classCallCheck(this, Position);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.getTarget = function () {\n var target = _this.props.target;\n\n var targetElement = typeof target === 'function' ? target() : target;\n return targetElement && _reactDom2.default.findDOMNode(targetElement) || null;\n };\n\n _this.maybeUpdatePosition = function (placementChanged) {\n var target = _this.getTarget();\n\n if (!_this.props.shouldUpdatePosition && target === _this._lastTarget && !placementChanged) {\n return;\n }\n\n _this.updatePosition(target);\n };\n\n _this.state = {\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n };\n\n _this._needsFlush = false;\n _this._lastTarget = null;\n return _this;\n }\n\n Position.prototype.componentDidMount = function componentDidMount() {\n this.updatePosition(this.getTarget());\n };\n\n Position.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps() {\n this._needsFlush = true;\n };\n\n Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this._needsFlush) {\n this._needsFlush = false;\n this.maybeUpdatePosition(this.props.placement !== prevProps.placement);\n }\n };\n\n Position.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n props = _objectWithoutProperties(_props, ['children', 'className']);\n\n var _state = this.state,\n positionLeft = _state.positionLeft,\n positionTop = _state.positionTop,\n arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']);\n\n // These should not be forwarded to the child.\n\n\n delete props.target;\n delete props.container;\n delete props.containerPadding;\n delete props.shouldUpdatePosition;\n\n var child = _react2.default.Children.only(children);\n return (0, _react.cloneElement)(child, _extends({}, props, arrowPosition, {\n // FIXME: Don't forward `positionLeft` and `positionTop` via both props\n // and `props.style`.\n positionLeft: positionLeft,\n positionTop: positionTop,\n className: (0, _classnames2.default)(className, child.props.className),\n style: _extends({}, child.props.style, {\n left: positionLeft,\n top: positionTop\n })\n }));\n };\n\n Position.prototype.updatePosition = function updatePosition(target) {\n this._lastTarget = target;\n\n if (!target) {\n this.setState({\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n });\n\n return;\n }\n\n var overlay = _reactDom2.default.findDOMNode(this);\n var container = (0, _getContainer2.default)(this.props.container, (0, _ownerDocument2.default)(this).body);\n\n this.setState((0, _calculatePosition2.default)(this.props.placement, overlay, target, container, this.props.containerPadding));\n };\n\n return Position;\n}(_react2.default.Component);\n\nPosition.propTypes = {\n /**\n * A node, element, or function that returns either. The child will be\n * be positioned next to the `target` specified.\n */\n target: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n /**\n * \"offsetParent\" of the component\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n /**\n * Minimum spacing in pixels between container border and component border\n */\n containerPadding: _propTypes2.default.number,\n /**\n * How to position the component relative to the target\n */\n placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),\n /**\n * Whether the position should be changed on each update\n */\n shouldUpdatePosition: _propTypes2.default.bool\n};\n\nPosition.displayName = 'Position';\n\nPosition.defaultProps = {\n containerPadding: 0,\n placement: 'right',\n shouldUpdatePosition: false\n};\n\nexports.default = Position;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\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 propTypes = {\n children: _propTypes2.default.node\n};\n\n/**\n * Internal helper component to allow attaching a non-conflicting ref to a\n * child element that may not accept refs.\n */\n\nvar RefHolder = function (_React$Component) {\n _inherits(RefHolder, _React$Component);\n\n function RefHolder() {\n _classCallCheck(this, RefHolder);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n RefHolder.prototype.render = function render() {\n return this.props.children;\n };\n\n return RefHolder;\n}(_react2.default.Component);\n\nRefHolder.propTypes = propTypes;\n\nexports.default = RefHolder;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\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 escapeKeyCode = 27;\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The `` component registers your callback on the document\n * when rendered. Powers the `` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n */\n\nvar RootCloseWrapper = function (_React$Component) {\n _inherits(RootCloseWrapper, _React$Component);\n\n function RootCloseWrapper(props, context) {\n _classCallCheck(this, RootCloseWrapper);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.addEventListeners = function () {\n // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n _this.currentEvent = window.event;\n\n var event = _this.props.event;\n\n var doc = (0, _ownerDocument2.default)(_this);\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n _this.documentMouseCaptureListener = (0, _addEventListener2.default)(doc, event, _this.handleMouseCapture, true);\n\n _this.documentMouseListener = (0, _addEventListener2.default)(doc, event, _this.handleMouse);\n\n _this.documentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this.handleKeyUp);\n };\n\n _this.removeEventListeners = function () {\n if (_this.documentMouseCaptureListener) {\n _this.documentMouseCaptureListener.remove();\n }\n\n if (_this.documentMouseListener) {\n _this.documentMouseListener.remove();\n }\n\n if (_this.documentKeyupListener) {\n _this.documentKeyupListener.remove();\n }\n };\n\n _this.handleMouseCapture = function (e) {\n _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);\n };\n\n _this.handleMouse = function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === _this.currentEvent) {\n _this.currentEvent = undefined;\n return;\n }\n\n if (!_this.preventMouseRootClose && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.handleKeyUp = function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === _this.currentEvent) {\n _this.currentEvent = undefined;\n return;\n }\n\n if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.preventMouseRootClose = false;\n return _this;\n }\n\n RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {\n if (!this.props.disabled) {\n this.addEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!this.props.disabled && prevProps.disabled) {\n this.addEventListeners();\n } else if (this.props.disabled && !prevProps.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {\n if (!this.props.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.render = function render() {\n return this.props.children;\n };\n\n return RootCloseWrapper;\n}(_react2.default.Component);\n\nRootCloseWrapper.displayName = 'RootCloseWrapper';\n\nRootCloseWrapper.propTypes = {\n /**\n * Callback fired after click or mousedown. Also triggers when user hits `esc`.\n */\n onRootClose: _propTypes2.default.func,\n /**\n * Children to render.\n */\n children: _propTypes2.default.element,\n /**\n * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.\n */\n disabled: _propTypes2.default.bool,\n /**\n * Choose which document mouse event to bind to.\n */\n event: _propTypes2.default.oneOf(['click', 'mousedown'])\n};\n\nRootCloseWrapper.defaultProps = {\n event: 'click'\n};\n\nexports.default = RootCloseWrapper;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.RootCloseWrapper = exports.Position = exports.Portal = exports.Overlay = exports.Modal = exports.AutoAffix = exports.Affix = undefined;\n\nvar _Affix2 = require('./Affix');\n\nvar _Affix3 = _interopRequireDefault(_Affix2);\n\nvar _AutoAffix2 = require('./AutoAffix');\n\nvar _AutoAffix3 = _interopRequireDefault(_AutoAffix2);\n\nvar _Modal2 = require('./Modal');\n\nvar _Modal3 = _interopRequireDefault(_Modal2);\n\nvar _Overlay2 = require('./Overlay');\n\nvar _Overlay3 = _interopRequireDefault(_Overlay2);\n\nvar _Portal2 = require('./Portal');\n\nvar _Portal3 = _interopRequireDefault(_Portal2);\n\nvar _Position2 = require('./Position');\n\nvar _Position3 = _interopRequireDefault(_Position2);\n\nvar _RootCloseWrapper2 = require('./RootCloseWrapper');\n\nvar _RootCloseWrapper3 = _interopRequireDefault(_RootCloseWrapper2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Affix = _Affix3.default;\nexports.AutoAffix = _AutoAffix3.default;\nexports.Modal = _Modal3.default;\nexports.Overlay = _Overlay3.default;\nexports.Portal = _Portal3.default;\nexports.Position = _Position3.default;\nexports.RootCloseWrapper = _RootCloseWrapper3.default;","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (node, event, handler, capture) {\n (0, _on2.default)(node, event, handler, capture);\n\n return {\n remove: function remove() {\n (0, _off2.default)(node, event, handler, capture);\n }\n };\n};\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = addFocusListener;\n/**\n * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling\n * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8\n *\n * We only allow one Listener at a time to avoid stack overflows\n */\nfunction addFocusListener(handler) {\n var useFocusin = !document.addEventListener;\n var remove = void 0;\n\n if (useFocusin) {\n document.attachEvent('onfocusin', handler);\n remove = function remove() {\n return document.detachEvent('onfocusin', handler);\n };\n } else {\n document.addEventListener('focus', handler, true);\n remove = function remove() {\n return document.removeEventListener('focus', handler, true);\n };\n }\n\n return { remove: remove };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = calculatePosition;\n\nvar _offset = require('dom-helpers/query/offset');\n\nvar _offset2 = _interopRequireDefault(_offset);\n\nvar _position = require('dom-helpers/query/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _scrollTop = require('dom-helpers/query/scrollTop');\n\nvar _scrollTop2 = _interopRequireDefault(_scrollTop);\n\nvar _ownerDocument = require('./ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainerDimensions(containerNode) {\n var width = void 0,\n height = void 0,\n scroll = void 0;\n\n if (containerNode.tagName === 'BODY') {\n width = window.innerWidth;\n height = window.innerHeight;\n\n scroll = (0, _scrollTop2.default)((0, _ownerDocument2.default)(containerNode).documentElement) || (0, _scrollTop2.default)(containerNode);\n } else {\n var _getOffset = (0, _offset2.default)(containerNode);\n\n width = _getOffset.width;\n height = _getOffset.height;\n\n scroll = (0, _scrollTop2.default)(containerNode);\n }\n\n return { width: width, height: height, scroll: scroll };\n}\n\nfunction getTopDelta(top, overlayHeight, container, padding) {\n var containerDimensions = getContainerDimensions(container);\n var containerScroll = containerDimensions.scroll;\n var containerHeight = containerDimensions.height;\n\n var topEdgeOffset = top - padding - containerScroll;\n var bottomEdgeOffset = top + padding - containerScroll + overlayHeight;\n\n if (topEdgeOffset < 0) {\n return -topEdgeOffset;\n } else if (bottomEdgeOffset > containerHeight) {\n return containerHeight - bottomEdgeOffset;\n } else {\n return 0;\n }\n}\n\nfunction getLeftDelta(left, overlayWidth, container, padding) {\n var containerDimensions = getContainerDimensions(container);\n var containerWidth = containerDimensions.width;\n\n var leftEdgeOffset = left - padding;\n var rightEdgeOffset = left + padding + overlayWidth;\n\n if (leftEdgeOffset < 0) {\n return -leftEdgeOffset;\n } else if (rightEdgeOffset > containerWidth) {\n return containerWidth - rightEdgeOffset;\n }\n\n return 0;\n}\n\nfunction calculatePosition(placement, overlayNode, target, container, padding) {\n var childOffset = container.tagName === 'BODY' ? (0, _offset2.default)(target) : (0, _position2.default)(target, container);\n\n var _getOffset2 = (0, _offset2.default)(overlayNode),\n overlayHeight = _getOffset2.height,\n overlayWidth = _getOffset2.width;\n\n var positionLeft = void 0,\n positionTop = void 0,\n arrowOffsetLeft = void 0,\n arrowOffsetTop = void 0;\n\n if (placement === 'left' || placement === 'right') {\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n\n if (placement === 'left') {\n positionLeft = childOffset.left - overlayWidth;\n } else {\n positionLeft = childOffset.left + childOffset.width;\n }\n\n var topDelta = getTopDelta(positionTop, overlayHeight, container, padding);\n\n positionTop += topDelta;\n arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%';\n arrowOffsetLeft = void 0;\n } else if (placement === 'top' || placement === 'bottom') {\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n\n if (placement === 'top') {\n positionTop = childOffset.top - overlayHeight;\n } else {\n positionTop = childOffset.top + childOffset.height;\n }\n\n var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);\n\n positionLeft += leftDelta;\n arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%';\n arrowOffsetTop = void 0;\n } else {\n throw new Error('calcOverlayPosition(): No such placement of \"' + placement + '\" found.');\n }\n\n return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = getContainer;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainer(container, defaultContainer) {\n container = typeof container === 'function' ? container() : container;\n return _reactDom2.default.findDOMNode(container) || defaultContainer;\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (doc) {\n return Math.max(doc.documentElement.offsetHeight || 0, doc.height || 0, doc.body.scrollHeight || 0, doc.body.offsetHeight || 0);\n};\n\nmodule.exports = exports[\"default\"]; /**\n * Get the height of the document\n *\n * @returns {documentHeight: number}\n */","'use strict';\n\nexports.__esModule = true;\nexports.default = isOverflowing;\n\nvar _isWindow = require('dom-helpers/query/isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBody(node) {\n return node && node.tagName.toLowerCase() === 'body';\n}\n\nfunction bodyIsOverflowing(node) {\n var doc = (0, _ownerDocument2.default)(node);\n var win = (0, _isWindow2.default)(doc);\n var fullWidth = win.innerWidth;\n\n // Support: ie8, no innerWidth\n if (!fullWidth) {\n var documentElementRect = doc.documentElement.getBoundingClientRect();\n fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n\n return doc.body.clientWidth < fullWidth;\n}\n\nfunction isOverflowing(container) {\n var win = (0, _isWindow2.default)(container);\n\n return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.ariaHidden = ariaHidden;\nexports.hideSiblings = hideSiblings;\nexports.showSiblings = showSiblings;\n\nvar BLACKLIST = ['template', 'script', 'style'];\n\nvar isHidable = function isHidable(_ref) {\n var nodeType = _ref.nodeType,\n tagName = _ref.tagName;\n return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;\n};\n\nvar siblings = function siblings(container, mount, cb) {\n mount = [].concat(mount);\n\n [].forEach.call(container.children, function (node) {\n if (mount.indexOf(node) === -1 && isHidable(node)) {\n cb(node);\n }\n });\n};\n\nfunction ariaHidden(show, node) {\n if (!node) {\n return;\n }\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\n\nfunction hideSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(true, node);\n });\n}\n\nfunction showSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(false, node);\n });\n}","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (componentOrElement) {\n return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement));\n};\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (componentOrElement) {\n return (0, _ownerWindow2.default)(_reactDom2.default.findDOMNode(componentOrElement));\n};\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _ownerWindow = require('dom-helpers/ownerWindow');\n\nvar _ownerWindow2 = _interopRequireDefault(_ownerWindow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction elementType(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);\n\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');\n }\n\n if (propType !== 'function' && propType !== 'string') {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');\n }\n\n return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(elementType);","'use strict';\n\nexports.__esModule = true;\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}","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, createPath } 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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 /*#__PURE__*/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 /*#__PURE__*/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 isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? 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 /*#__PURE__*/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 /*#__PURE__*/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 /*#__PURE__*/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\", \"false\"]);\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 = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_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) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/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 }, /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 /*#__PURE__*/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 /*#__PURE__*/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 /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/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 ? /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 = /*#__PURE__*/function (_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 /*#__PURE__*/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 && /*#__PURE__*/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 ? /*#__PURE__*/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 /*#__PURE__*/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 /*#__PURE__*/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","'use strict';\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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _shallowEqual = require('./utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _series = require('./utils/series');\n\nvar _series2 = _interopRequireDefault(_series);\n\nvar _whilst = require('./utils/whilst');\n\nvar _whilst2 = _interopRequireDefault(_whilst);\n\nvar _throttle = require('./utils/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _uniqueId = require('./utils/uniqueId');\n\nvar _uniqueId2 = _interopRequireDefault(_uniqueId);\n\nvar _innerSize = require('./utils/innerSize');\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\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\nfunction assertElementFitsWidth(el, width) {\n // -1: temporary bugfix, will be refactored soon\n return el.scrollWidth - 1 <= width;\n}\n\nfunction assertElementFitsHeight(el, height) {\n // -1: temporary bugfix, will be refactored soon\n return el.scrollHeight - 1 <= height;\n}\n\nfunction noop() {}\n\nvar TextFit = function (_React$Component) {\n _inherits(TextFit, _React$Component);\n\n function TextFit(props) {\n _classCallCheck(this, TextFit);\n\n var _this = _possibleConstructorReturn(this, (TextFit.__proto__ || Object.getPrototypeOf(TextFit)).call(this, props));\n\n _this.state = {\n fontSize: null,\n ready: false\n };\n\n _this.handleWindowResize = function () {\n _this.process();\n };\n\n if ('perfectFit' in props) {\n console.warn('TextFit property perfectFit has been removed.');\n }\n\n _this.handleWindowResize = (0, _throttle2.default)(_this.handleWindowResize, props.throttle);\n return _this;\n }\n\n _createClass(TextFit, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var autoResize = this.props.autoResize;\n\n if (autoResize) {\n window.addEventListener('resize', this.handleWindowResize);\n }\n this.process();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var ready = this.state.ready;\n\n if (!ready) return;\n if ((0, _shallowEqual2.default)(this.props, prevProps)) return;\n this.process();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var autoResize = this.props.autoResize;\n\n if (autoResize) {\n window.removeEventListener('resize', this.handleWindowResize);\n }\n // Setting a new pid will cancel all running processes\n this.pid = (0, _uniqueId2.default)();\n }\n }, {\n key: 'process',\n value: function process() {\n var _this2 = this;\n\n var _props = this.props,\n min = _props.min,\n max = _props.max,\n mode = _props.mode,\n forceSingleModeWidth = _props.forceSingleModeWidth,\n onReady = _props.onReady;\n\n var el = this._parent;\n var wrapper = this._child;\n\n // if the el is null which means the TextFit has been removed. No need to process anymore\n if (!(el instanceof Element)) {\n return;\n }\n\n var originalWidth = (0, _innerSize.innerWidth)(el);\n var originalHeight = (0, _innerSize.innerHeight)(el);\n\n if (originalHeight <= 0 || isNaN(originalHeight)) {\n console.warn('Can not process element without height. Make sure the element is displayed and has a static height.');\n return;\n }\n\n if (originalWidth <= 0 || isNaN(originalWidth)) {\n console.warn('Can not process element without width. Make sure the element is displayed and has a static width.');\n return;\n }\n\n var pid = (0, _uniqueId2.default)();\n this.pid = pid;\n\n var shouldCancelProcess = function shouldCancelProcess() {\n return pid !== _this2.pid;\n };\n\n var testPrimary = mode === 'multi' ? function () {\n return assertElementFitsHeight(wrapper, originalHeight);\n } : function () {\n return assertElementFitsWidth(wrapper, originalWidth);\n };\n\n var testSecondary = mode === 'multi' ? function () {\n return assertElementFitsWidth(wrapper, originalWidth);\n } : function () {\n return assertElementFitsHeight(wrapper, originalHeight);\n };\n\n var mid = void 0;\n var low = min;\n var high = max;\n\n this.setState({ ready: false });\n\n (0, _series2.default)([\n // Step 1:\n // Binary search to fit the element's height (multi line) / width (single line)\n function (stepCallback) {\n return (0, _whilst2.default)(function () {\n return low <= high;\n }, function (whilstCallback) {\n if (shouldCancelProcess()) return whilstCallback(true);\n mid = parseInt((low + high) / 2, 10);\n _this2.setState({ fontSize: mid }, function () {\n if (shouldCancelProcess()) return whilstCallback(true);\n if (testPrimary()) low = mid + 1;else high = mid - 1;\n return whilstCallback();\n });\n }, stepCallback);\n },\n // Step 2:\n // Binary search to fit the element's width (multi line) / height (single line)\n // If mode is single and forceSingleModeWidth is true, skip this step\n // in order to not fit the elements height and decrease the width\n function (stepCallback) {\n if (mode === 'single' && forceSingleModeWidth) return stepCallback();\n if (testSecondary()) return stepCallback();\n low = min;\n high = mid;\n return (0, _whilst2.default)(function () {\n return low < high;\n }, function (whilstCallback) {\n if (shouldCancelProcess()) return whilstCallback(true);\n mid = parseInt((low + high) / 2, 10);\n _this2.setState({ fontSize: mid }, function () {\n if (pid !== _this2.pid) return whilstCallback(true);\n if (testSecondary()) low = mid + 1;else high = mid - 1;\n return whilstCallback();\n });\n }, stepCallback);\n },\n // Step 3\n // Limits\n function (stepCallback) {\n // We break the previous loop without updating mid for the final time,\n // so we do it here:\n mid = Math.min(low, high);\n\n // Ensure we hit the user-supplied limits\n mid = Math.max(mid, min);\n mid = Math.min(mid, max);\n\n // Sanity check:\n mid = Math.max(mid, 0);\n\n if (shouldCancelProcess()) return stepCallback(true);\n _this2.setState({ fontSize: mid }, stepCallback);\n }], function (err) {\n // err will be true, if another process was triggered\n if (err || shouldCancelProcess()) return;\n _this2.setState({ ready: true }, function () {\n return onReady(mid);\n });\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n text = _props2.text,\n style = _props2.style,\n min = _props2.min,\n max = _props2.max,\n mode = _props2.mode,\n forceWidth = _props2.forceWidth,\n forceSingleModeWidth = _props2.forceSingleModeWidth,\n throttle = _props2.throttle,\n autoResize = _props2.autoResize,\n onReady = _props2.onReady,\n props = _objectWithoutProperties(_props2, ['children', 'text', 'style', 'min', 'max', 'mode', 'forceWidth', 'forceSingleModeWidth', 'throttle', 'autoResize', 'onReady']);\n\n var _state = this.state,\n fontSize = _state.fontSize,\n ready = _state.ready;\n\n var finalStyle = _extends({}, style, {\n fontSize: fontSize\n });\n\n var wrapperStyle = {\n display: ready ? 'block' : 'inline-block'\n };\n if (mode === 'single') wrapperStyle.whiteSpace = 'nowrap';\n\n return _react2.default.createElement(\n 'div',\n _extends({ ref: function ref(c) {\n return _this3._parent = c;\n }, style: finalStyle }, props),\n _react2.default.createElement(\n 'div',\n { ref: function ref(c) {\n return _this3._child = c;\n }, style: wrapperStyle },\n text && typeof children === 'function' ? ready ? children(text) : text : children\n )\n );\n }\n }]);\n\n return TextFit;\n}(_react2.default.Component);\n\nTextFit.propTypes = {\n children: _propTypes2.default.node,\n text: _propTypes2.default.string,\n min: _propTypes2.default.number,\n max: _propTypes2.default.number,\n mode: _propTypes2.default.oneOf(['single', 'multi']),\n forceSingleModeWidth: _propTypes2.default.bool,\n throttle: _propTypes2.default.number,\n onReady: _propTypes2.default.func\n};\nTextFit.defaultProps = {\n min: 1,\n max: 100,\n mode: 'multi',\n forceSingleModeWidth: true,\n throttle: 50,\n autoResize: true,\n onReady: noop\n};\nexports.default = TextFit;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Textfit = undefined;\n\nvar _Textfit = require('./Textfit');\n\nvar _Textfit2 = _interopRequireDefault(_Textfit);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Textfit = _Textfit2.default;\nexports.default = _Textfit2.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\n// Calculate height without padding.\nfunction innerHeight(el) {\n var style = window.getComputedStyle(el, null);\n // Hidden iframe in Firefox returns null, https://github.com/malte-wessel/react-textfit/pull/34\n if (!style) return el.clientHeight;\n return el.clientHeight - parseInt(style.getPropertyValue(\"padding-top\"), 10) - parseInt(style.getPropertyValue(\"padding-bottom\"), 10);\n}\n\n// Calculate width without padding.\nfunction innerWidth(el) {\n var style = window.getComputedStyle(el, null);\n // Hidden iframe in Firefox returns null, https://github.com/malte-wessel/react-textfit/pull/34\n if (!style) return el.clientWidth;\n return el.clientWidth - parseInt(style.getPropertyValue(\"padding-left\"), 10) - parseInt(style.getPropertyValue(\"padding-right\"), 10);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = series;\n\nvar _process = require('process');\n\nvar _process2 = _interopRequireDefault(_process);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction series(tasks, cb) {\n var results = [];\n var current = 0;\n var isSync = true;\n\n function done(err) {\n function end() {\n if (cb) cb(err, results);\n }\n if (isSync) _process2.default.nextTick(end);else end();\n }\n\n function each(err, result) {\n results.push(result);\n if (++current >= tasks.length || err) done(err);else tasks[current](each);\n }\n\n if (tasks.length > 0) tasks[0](each);else done(null);\n\n isSync = false;\n} /**\r\n * Run the functions in the tasks array in series, each one running once the previous function has completed.\r\n * If any functions in the series pass an error to its callback, no more functions are run,\r\n * and callback is immediately called with the value of the error. Otherwise, callback receives an array of results\r\n * when tasks have completed.\r\n * Taken from https://github.com/feross/run-series\r\n *\r\n * @params {Array} tasks An array containing functions to run, each function is passed a callback(err, result) which it must call on completion with an error err (which can be null) and an optional result value.\r\n * @params {Function} callback(err, results) - An optional callback to run once all the functions have completed. This function gets a results array containing all the result arguments passed to the task callbacks.\r\n */","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\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 var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = throttle;\n/**\r\n * Returns a new function that, when invoked, invokes `func` at most once per `wait` milliseconds.\r\n * Taken from https://github.com/component/throttle v1.0.0\r\n *\r\n * @param {Function} func Function to wrap.\r\n * @param {Number} wait Number of milliseconds that must elapse between `func` invocations.\r\n * @return {Function} A new function that wraps the `func` function passed in.\r\n */\n\nfunction throttle(func, wait) {\n var ctx = void 0;\n var args = void 0;\n var rtn = void 0;\n var timeoutID = void 0;\n var last = 0;\n\n function call() {\n timeoutID = 0;\n last = +new Date();\n rtn = func.apply(ctx, args);\n ctx = null;\n args = null;\n }\n\n return function throttled() {\n ctx = this;\n args = arguments;\n var delta = new Date() - last;\n if (!timeoutID) {\n if (delta >= wait) call();else timeoutID = setTimeout(call, wait - delta);\n }\n return rtn;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = uniqueId;\nvar uid = 0;\n\nfunction uniqueId() {\n return uid++;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whilst;\nvar noop = function noop() {};\n\n/**\r\n * Repeatedly call fn, while test returns true. Calls callback when stopped, or an error occurs.\r\n *\r\n * @param {Function} test Synchronous truth test to perform before each execution of fn.\r\n * @param {Function} fn A function which is called each time test passes. The function is passed a callback(err), which must be called once it has completed with an optional err argument.\r\n * @param {Function} callback A callback which is called after the test fails and repeated execution of fn has stopped.\r\n */\n\nfunction whilst(test, iterator) {\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop;\n\n if (test()) {\n iterator(function next(err) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (err) {\n callback(err);\n } else if (test.apply(this, args)) {\n iterator(next);\n } else {\n callback(null);\n }\n });\n } else {\n callback(null);\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import React from 'react';\nexport default React.createContext(null);","\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';","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 _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';","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.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 CellMeasurer from './CellMeasurer';\nimport CellMeasurerCache from './CellMeasurerCache';\n\nexport default CellMeasurer;\nexport { CellMeasurer, CellMeasurerCache };","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 Collection from './Collection';\n\nexport default Collection;\nexport { Collection };","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 ColumnSizer from './ColumnSizer';\n\nexport default ColumnSizer;\nexport { ColumnSizer };","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 InfiniteLoader from './InfiniteLoader';\n\nexport default InfiniteLoader;\nexport { InfiniteLoader };","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 createCellPositioner from './createCellPositioner';\nimport Masonry from './Masonry';\n\nexport default Masonry;\nexport { createCellPositioner, 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} : {};","\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 sortBy.length = 0;\n sortBy.push(dataKey);\n\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 = {};\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 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({}, rowStyleObject, {\n height: headerHeight,\n overflow: 'hidden',\n paddingRight: scrollbarWidth,\n width: width\n })\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 _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 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-describedby': id,\n className: cn('ReactVirtualized__Table__rowColumn', className),\n key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\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 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, rowStyleObject, {\n height: this._getRowHeight(index),\n overflow: 'hidden',\n paddingRight: scrollbarWidth\n });\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 '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 /** 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'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 createMultiSort from './createMultiSort';\nimport defaultCellDataGetter from './defaultCellDataGetter';\nimport defaultCellRenderer from './defaultCellRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer.js';\nimport defaultHeaderRenderer from './defaultHeaderRenderer';\nimport defaultRowRenderer from './defaultRowRenderer';\nimport Column from './Column';\nimport SortDirection from './SortDirection';\nimport SortIndicator from './SortIndicator';\nimport Table from './Table';\n\nexport default Table;\nexport { createMultiSort, defaultCellDataGetter, defaultCellRenderer, defaultHeaderRowRenderer, defaultHeaderRenderer, defaultRowRenderer, Column, SortDirection, SortIndicator, Table };","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 v17.0.1\n * react-jsx-runtime.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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.1\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c