{"version":3,"file":"static/js/main.cd4303cb.js","mappings":"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","sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/index.tsx","../../packages/react-router-dom/index.tsx","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","hooks.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/index.ts","reducers/Testing.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","pages/home/HomePage.tsx","pages/result/ResultPage.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/rxjs/node_modules/tslib/tslib.es6.js","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","Utils.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/webrtc-adapter/src/js/utils.js","../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/webrtc-adapter/src/js/adapter_core.js","TestEngine.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-virtualized/dist/es/Grid/types.js","../node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","../node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","../node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-virtualized/dist/es/utils/animationFrame.js","../node_modules/react-virtualized/dist/es/Grid/Grid.js","../node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","../node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","../node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","../node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","../node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","../node_modules/react-virtualized/dist/es/CellMeasurer/types.js","../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","../node_modules/react-virtualized/dist/es/Collection/CollectionView.js","../node_modules/react-virtualized/dist/es/Collection/Section.js","../node_modules/react-virtualized/dist/es/Collection/SectionManager.js","../node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","../node_modules/react-virtualized/dist/es/Collection/Collection.js","../node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","../node_modules/react-virtualized/dist/es/Collection/index.js","../node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/index.js","../node_modules/react-virtualized/dist/es/List/List.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-virtualized/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","../node_modules/react-virtualized/dist/es/vendor/intervalTree.js","../node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","../node_modules/react-virtualized/dist/es/Masonry/Masonry.js","../node_modules/react-virtualized/dist/es/Masonry/index.js","../node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","../node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","../node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/SortDirection.js","../node_modules/react-virtualized/dist/es/Table/SortIndicator.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","../node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/Column.js","../node_modules/react-virtualized/dist/es/Table/Table.js","../node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","../node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","../node_modules/react-virtualized/dist/es/Table/index.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","../node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","../node_modules/react-virtualized/dist/es/WindowScroller/index.js","pages/testing/WaveformView.tsx","pages/testing/TestingPage.tsx","App.tsx","reportWebVitals.ts","../node_modules/rxjs/src/internal/scheduler/Action.ts","../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts","../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts","../node_modules/rxjs/src/internal/Scheduler.ts","../node_modules/rxjs/src/internal/scheduler/async.ts","../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/observable/innerFrom.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/util/isArrayLike.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/util/isAsyncIterable.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts","../node_modules/rxjs/src/internal/util/throwUnobservableError.ts","../node_modules/rxjs/src/internal/operators/throttle.ts","../node_modules/rxjs/src/internal/observable/timer.ts","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/isDate.ts","../node_modules/rxjs/src/internal/operators/throttleTime.ts","Signal.ts","testManagerMiddleware.tsx","store.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","index.tsx","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/sdp/sdp.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import * as React from \"react\";\nimport type {\n History,\n InitialEntry,\n Location,\n MemoryHistory,\n Path,\n To\n} from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath\n} from \"history\";\n\nexport type { Location, Path, To, NavigationType };\n\nfunction invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nfunction warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// CONTEXT\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nconst NavigationContext = React.createContext(null!);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nconst LocationContext = React.createContext(null!);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nconst RouteContext = React.createContext({\n outlet: null,\n matches: []\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// HOOKS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\ntype ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map(match =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase])\n })\n ),\n parentMatches\n );\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, element => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, _ =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map(meta => meta.childrenIndex),\n b.routesMeta.map(meta => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter(s => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: joinPaths([matchedPathname, match.pathnameBase]),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\nfunction _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n \"(?:\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nfunction getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nfunction stripBasename(pathname: string, basename: string): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nconst joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nconst normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext\n};\n","import * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory, createPath } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n};\n\nexport type {\n Location,\n Path,\n To,\n NavigationType,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\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\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","import { TypedUseSelectorHook, useDispatch, useSelector } from \"react-redux\";\r\nimport type { RootState, AppDispatch } from \"./store\";\r\n\r\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch = () => useDispatch();\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyType.Set ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\tstate.copy_![prop] === value &&\n\t\t\t// special case: NaN\n\t\t\ttypeof value !== \"number\" &&\n\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t(value !== undefined || prop in state.copy_)\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (\n\t\targ1: any,\n\t\targ2?: any,\n\t\targ3?: any\n\t): any => {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface EnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * See detailed documentation at https://github.com/reduxjs/redux-devtools/blob/%40redux-devtools/extension%403.2.1/extension/docs/API/Arguments.md#serialize\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n options?:\r\n | boolean\r\n | {\r\n date?: boolean\r\n regex?: boolean\r\n undefined?: boolean\r\n error?: boolean\r\n symbol?: boolean\r\n map?: boolean\r\n set?: boolean\r\n function?: boolean | Function\r\n }\r\n replacer?: (key: string, value: unknown) => unknown\r\n reviver?: (key: string, value: unknown) => unknown\r\n immutable?: unknown\r\n refs?: unknown[]\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsBlacklist`/`actionsWhitelist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: {\r\n (options: EnhancerOptions): typeof compose\r\n (...funcs: Array>): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: EnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Middleware } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware\r\n> extends Array {\r\n constructor(arrayLength?: number)\r\n constructor(...items: Middlewares[])\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n :\r\n | ThunkMiddleware //The ThunkMiddleware with a `null` ExtraArgument is here to provide backwards-compatibility.\r\n | ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray | ThunkMiddlewareFor>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray | ThunkMiddlewareFor> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n } = options\r\n\r\n let middlewareArray: Middleware<{}, S>[] = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\ninterface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare\r\n : ActionCreatorForCaseReducer\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare =\r\n _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator

\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : createNextState(options.initialState, () => {})\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n return createReducer(\r\n initialState,\r\n finalCaseReducers as any,\r\n actionMatchers,\r\n defaultCaseReducer\r\n )\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * An *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => S | void | Draft\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => createNextState(initialState(), () => {})\r\n } else {\r\n const frozenInitialState = createNextState(initialState, () => {})\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (typeof result === 'undefined') {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (typeof result === 'undefined') {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","import React from \"react\";\nimport { useNavigate, useRoutes } from \"react-router-dom\";\nimport { Subscription } from \"rxjs\";\nimport { useAppDispatch } from \"../../hooks\";\nimport { startTest } from \"../../reducers/Testing\";\nimport { Signal } from \"../../Signal\";\nimport { ReceivedRtcpStats } from \"../../Stats\";\nimport { TestEngine } from \"../../TestEngine\";\n\ninterface Props {}\n\nconst Home: React.FunctionComponent = (props: Props) => {\n let navigate = useNavigate();\n let dispatch = useAppDispatch();\n return (\n

\n \n );\n};\n\nexport default Home;\n","import { argv } from \"process\";\nimport React, { useEffect } from \"react\";\nimport { NavigateFunction, useNavigate } from \"react-router-dom\";\nimport { Subscription } from \"rxjs\";\nimport { useAppDispatch, useAppSelector } from \"../../hooks\";\nimport { startTest } from \"../../reducers/Testing\";\nimport { withNavigation } from \"../../RouterHoc\";\nimport { Signal } from \"../../Signal\";\nimport { ReceivedRtcpStats } from \"../../Stats\";\nimport { TestEngine, TestEngineState } from \"../../TestEngine\";\n\ninterface Props {}\n\nconst ResultPage: React.FunctionComponent = (props: Props) => {\n const dispatch = useAppDispatch();\n const stats = useAppSelector((state) => state.testing.stats);\n const waveformData = useAppSelector((state) => state.testing.waveformData);\n const navigate = useNavigate();\n const jitterList = stats\n .map((s) => s.JitterInMillis)\n .map((jitter) => jitter || 0);\n const packetsLosts: number[] = stats\n .map((s) => s.PacketLossRatePercent)\n .map((percent) => percent || 0);\n return (\n
\n
Result
\n
\n Avg Jitter:\n {jitterList.length > 0\n ? jitterList.reduce((a, b) => a + b, 0) / jitterList.length\n : null}\n
\n
\n Avg Packets Lost%:\n {packetsLosts.length > 0\n ? packetsLosts.reduce((a, b) => a + b, 0) / packetsLosts.length\n : null}\n
\n
\n {\n dispatch(startTest());\n navigate(\"/test\");\n }}\n >\n Re-test\n \n
\n );\n};\n\nexport default ResultPage;\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n","/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n","/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered teardowns to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _teardowns: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the teardown\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown } = this;\n if (isFunction(initialTeardown)) {\n try {\n initialTeardown();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _teardowns } = this;\n if (_teardowns) {\n this._teardowns = null;\n for (const teardown of _teardowns) {\n try {\n execTeardown(teardown);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a teardown to this subscription, so that teardown will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever teardown is passed to it\n * will automatically be executed (unless the teardown itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as teardowns to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The teardown logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the teardown if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever teardown is handed to it automatically.\n execTeardown(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._teardowns = this._teardowns ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a teardown from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same teardown instance of a function or an unsubscribable object to a `Subcription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All teardown instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The teardown to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _teardowns } = this;\n _teardowns && arrRemove(_teardowns, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execTeardown(teardown: Unsubscribable | (() => void)) {\n if (isFunction(teardown)) {\n teardown();\n } else {\n teardown.unsubscribe();\n }\n}\n","import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n","type SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => number;\ntype ClearTimeoutFunction = (handle: number) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(...args) {\n const { delegate } = timeoutProvider;\n return (delegate?.setTimeout || setTimeout)(...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let next: ((value: T) => void) | undefined;\n if (isFunction(observerOrNext)) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n next = observerOrNext;\n } else if (observerOrNext) {\n // The first argument is an observer object, we have to pull the handlers\n // off and capture the owner object as the context. That is because we're\n // going to put them all in a new destination with ensured methods\n // for `next`, `error`, and `complete`. That's part of what makes this\n // the \"Safe\" Subscriber.\n ({ next, error, complete } = observerOrNext);\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n } else {\n context = observerOrNext;\n }\n next = next?.bind(context);\n error = error?.bind(context);\n complete = complete?.bind(context);\n }\n\n // Once we set the destination, the superclass `Subscriber` will\n // do it's magic in the `_next`, `_error`, and `_complete` methods.\n this.destination = {\n next: next ? wrapForErrorHandling(next, this) : noop,\n error: wrapForErrorHandling(error ?? defaultErrorHandler, this),\n complete: complete ? wrapForErrorHandling(complete, this) : noop,\n };\n }\n}\n\n/**\n * Wraps a user-provided handler (or our {@link defaultErrorHandler} in one case) to\n * ensure that any thrown errors are caught and handled appropriately.\n *\n * @param handler The handler to wrap\n * @param instance The SafeSubscriber instance we're going to mark if there's an error.\n */\nfunction wrapForErrorHandling(handler: (arg?: any) => void, instance: SafeSubscriber) {\n return (...args: any[]) => {\n try {\n handler(...args);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(err);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(err);\n }\n }\n };\n}\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","export function identity(x: T): T {\n return x;\n}\n","import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n","import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: Partial>): Subscription;\n subscribe(next: (value: T) => void): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * ## Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * ## Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe
(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n const copy = this.observers.slice();\n for (const observer of copy) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n return hasError || isStopped\n ? EMPTY_SUBSCRIPTION\n : (observers.push(subscriber), new Subscription(() => arrRemove(observers, subscriber)));\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create customize Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n","export async function sleep(mills: number) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n return resolve();\n }, mills);\n });\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n","import { BehaviorSubject, Observable, Subject, Subscription } from \"rxjs\";\nimport { Message } from \"./Message\";\nimport { Signal } from \"./Signal\";\nimport { ReceivedRtcpStats } from \"./Stats\";\nimport { sleep } from \"./Utils\";\nimport \"webrtc-adapter\";\nimport { Stream } from \"stream\";\nimport saveAs from \"file-saver\";\nimport RecordRTC, { invokeSaveAsDialog } from \"recordrtc\";\n\nexport class TestEngine {\n private signal: Signal;\n private audioFileUrl: string;\n private connection: RTCPeerConnection;\n private subscription: Subscription = new Subscription();\n private audioContext: AudioContext = new AudioContext();\n private gainNode: GainNode = this.audioContext.createGain();\n private webRtcConfig: RTCConfiguration = {\n iceServers: [\n {\n urls: \"stun:stun.l.google.com:19302\",\n },\n ],\n };\n private soundSource?: AudioBufferSourceNode;\n private stateSubject = new BehaviorSubject(\n TestEngineState.INITIALIZING\n );\n private serverStatsSubject = new Subject();\n private waveformSubject = new Subject();\n private wholeWaveformSubject = new Subject();\n\n constructor(signal: Signal, audioFileUrl: string) {\n this.signal = signal;\n this.subscription.add(\n this.signal.dataStream.subscribe((message) => {\n this.onMessage(message);\n })\n );\n this.audioFileUrl = audioFileUrl;\n this.connection = new RTCPeerConnection(this.webRtcConfig);\n this.connection.onicecandidate = this.onicecandidate;\n this.connection.onconnectionstatechange = this.onConnectionStateChange;\n this.connection.oniceconnectionstatechange = this.onIceStateChange;\n this.connection.ontrack = this.onTrack;\n this.connection.addTransceiver(\"audio\");\n this.gainNode.connect(this.audioContext.destination);\n this.gainNode.gain.value = 0;\n }\n\n start = async () => {\n await this.signal.init();\n fetch(this.audioFileUrl)\n .then((res) => res.arrayBuffer())\n .then(async (buffer) => {\n const audioBuffer = await this.audioContext.decodeAudioData(buffer)!!;\n this.soundSource = this.audioContext.createBufferSource()!!;\n this.soundSource.buffer = audioBuffer;\n this.soundSource.connect(this.gainNode!!);\n var destination = this.audioContext?.createMediaStreamDestination()!!;\n this.soundSource.connect(destination);\n this.createOffer(destination.stream);\n });\n };\n\n dispose = async () => {\n this.subscription.unsubscribe();\n this.signal.dispose();\n this.connection.close();\n };\n\n createOffer = async (mediaStream: MediaStream) => {\n const sendChannel = this.connection.createDataChannel(\"sendChannel\");\n sendChannel.onmessage = (message) => {\n console.log(message.data);\n };\n\n const rtcRtpSender: RTCRtpSender[] = [];\n for (const track of mediaStream.getAudioTracks()) {\n console.log(track);\n const sender = this.connection.addTrack(track, mediaStream);\n rtcRtpSender.push(sender);\n track.onended = () => {\n console.log(\"onended\");\n };\n }\n\n const offer = await this.connection.createOffer();\n await this.connection.setLocalDescription(offer);\n console.log(this.connection.localDescription?.toJSON());\n this.sendMessage(\"offer\", this.connection.localDescription?.toJSON());\n };\n\n onicecandidate = (event: RTCPeerConnectionIceEvent) => {\n console.log(\"onicecandidate\");\n if (event.candidate && event.candidate.candidate) {\n this.sendMessage(\"candidate\", event.candidate.toJSON());\n }\n };\n\n onConnectionStateChange = async (event: Event) => {\n console.log(`onConnectionStateChange ${this.connection.connectionState}`);\n if (this.connection.connectionState === \"connected\") {\n if (this.state === TestEngineState.INITIALIZING) {\n this.stateSubject.next(TestEngineState.TESTING);\n this.soundSource?.start(0);\n this.connection.getSenders().forEach((sender) => {\n const kindOfTrack = sender.track?.kind;\n if (sender.transport) {\n const transport = sender.transport as any;\n if (transport.iceTransport) {\n console.log(transport.iceTransport.getSelectedCandidatePair());\n }\n }\n });\n }\n }\n // if (this.state === TestEngineState.TESTING) {\n // if (this.connection.connectionState === \"disconnected\") {\n // this.stateSubject.next(TestEngineState.TESTING);\n // }\n // }\n\n // switch (this.connection.connectionState) {\n // case \"closed\":\n // case \"disconnected\":\n // case \"failed\":\n // case \"new\":\n // {\n // this.stateSubject.next(TestEngineState.DISCONNECTED);\n // }\n // break;\n // case \"connecting\":\n // {\n // this.stateSubject.next(TestEngineState.INITIALIZING);\n // }\n // break;\n // case \"connected\":\n // {\n // this.stateSubject.next(TestEngineState.CONNECTED);\n // }\n // break;\n // }\n };\n\n onIceStateChange = (event: Event) => {\n console.log(`onIceStateChange ${this.connection.iceConnectionState}`);\n if (this.connection.iceConnectionState === \"connected\") {\n if (this.state === TestEngineState.INITIALIZING) {\n this.stateSubject.next(TestEngineState.TESTING);\n this.soundSource?.start(0);\n this.connection.getSenders().forEach((sender) => {\n const kindOfTrack = sender.track?.kind;\n if (sender.transport) {\n const transport = sender.transport as any;\n if (transport.iceTransport) {\n console.log(transport.iceTransport.getSelectedCandidatePair());\n }\n }\n });\n }\n }\n };\n\n onTrack = async (event: RTCTrackEvent) => {\n console.log(\"onTrack\");\n console.log(event.track.id);\n\n console.log(event.type);\n\n this.getStreamStats();\n\n // const recorder = new RecordRTC(event.streams[0], {\n // type: \"audio\",\n // mimeType: \"audio/wav\",\n // recorderType: RecordRTC.StereoAudioRecorder,\n // });\n\n // recorder.startRecording();\n\n // this.subscription.add(async () => {\n // recorder.stopRecording(function () {\n // let blob = recorder.getBlob();\n // invokeSaveAsDialog(blob);\n // });\n // });\n\n const stream = event.streams[0];\n const audioCtx = new window.AudioContext();\n const source = audioCtx.createMediaStreamSource(stream);\n this.generateWaveform(audioCtx, source, this.wholeWaveformSubject);\n\n // const timerId = setInterval(() => {\n // var dataArray = new Uint8Array(analyser.frequencyBinCount);\n // analyser.getByteTimeDomainData(dataArray);\n // // console.log(\"getByteTimeDomainData\");\n // // console.log(dataArray);\n // this.waveformSubject.next(Array.from(dataArray));\n // }, 100);\n\n const audio = new Audio();\n audio.srcObject = event.streams[0];\n audio.volume = 0;\n audio.play();\n };\n\n generateWaveform = async (\n audioCtx: AudioContext,\n source: AudioNode,\n notifySubject: Subject\n ) => {\n const analyser = audioCtx.createAnalyser();\n let processor = audioCtx.createScriptProcessor(1024, 1, 1);\n if (processor == null) {\n if ((audioCtx as any).createJavaScriptNode) {\n processor = (audioCtx as any).createJavaScriptNode(1024, 1, 1);\n }\n }\n let waveformData: number[] = [];\n processor.onaudioprocess = (event) => {\n const audioBuffer = event.inputBuffer;\n const rate = audioBuffer.sampleRate;\n const audioVec = audioBuffer\n .getChannelData(0)\n .map((a) => Math.floor(a * 128) + 128);\n const arr = Array.from(audioVec);\n const max = Math.max.apply(null, arr);\n const min = Math.min.apply(null, arr);\n waveformData = [...waveformData, max, min];\n notifySubject.next(waveformData);\n };\n\n analyser.connect(processor);\n processor.connect(audioCtx.destination);\n source.connect(analyser);\n\n analyser.smoothingTimeConstant = 0.8;\n analyser.fftSize = 1024;\n var dataArray = new Uint8Array(analyser.frequencyBinCount);\n\n analyser.getByteTimeDomainData(dataArray);\n\n this.subscription.add(() => {\n processor.disconnect();\n source.disconnect();\n });\n };\n\n getStreamStats = async () => {\n console.log(`getStreamStats`);\n let lastPacketReceivedTimestamp: number | undefined = undefined;\n let lastPacketReceivedTimestampLocalTimestamp: number | undefined =\n undefined;\n let streamEnded = false;\n let lastResult: any = null;\n while (!streamEnded) {\n if (this.state > TestEngineState.TESTING) {\n return;\n }\n try {\n const stats = await this.connection.getStats();\n stats.forEach((commonReport, key) => {\n // if(value.type === \"candidate-pair\") {\n // console.log(value);\n // }\n if (commonReport.type === \"inbound-rtp\") {\n const report = commonReport as RTCInboundRtpStreamStats;\n const now = report.timestamp;\n const bytes = report.bytesReceived || 0;\n const headerBytes = report.headerBytesReceived || 0;\n const packets = report.packetsReceived || 0;\n if (lastResult) {\n const deltaT = (now - lastResult.get(report.id).timestamp) / 1000;\n const bitrate =\n (8 * (bytes - lastResult.get(report.id).bytesReceived)) /\n deltaT;\n const headerrate =\n (8 *\n (headerBytes -\n lastResult.get(report.id).headerBytesReceived)) /\n deltaT;\n const packetRate =\n (8 * (packets - lastResult.get(report.id).packetsReceived)) /\n deltaT;\n console.log(\n `bitrate: ${bitrate}, headerrate: ${headerrate}, packetRate: ${packetRate}`\n );\n }\n }\n if (commonReport.type.indexOf(\"rtp\") >= 0) {\n console.log(commonReport);\n }\n // if (value.type === \"inbound-rtp\") {\n // if (\n // value.lastPacketReceivedTimestamp !== lastPacketReceivedTimestamp\n // ) {\n // console.log(key, value);\n // lastPacketReceivedTimestamp = value.lastPacketReceivedTimestamp;\n // lastPacketReceivedTimestampLocalTimestamp = new Date().getTime();\n // } else {\n // if (\n // lastPacketReceivedTimestamp &&\n // lastPacketReceivedTimestampLocalTimestamp\n // ) {\n // const currentLocalTimeStamp = new Date().getTime();\n // if (\n // currentLocalTimeStamp -\n // lastPacketReceivedTimestampLocalTimestamp >\n // 3000\n // ) {\n // streamEnded = true;\n // }\n // }\n // }\n // }\n });\n lastResult = stats;\n } catch (e) {\n console.log(`getStreamStats exception ${e}`);\n break;\n }\n await sleep(1000);\n }\n };\n\n sendMessage = (command: string, payload: any) => {\n this.signal?.send(\n JSON.stringify({\n command: command,\n payload: JSON.stringify(payload),\n })\n );\n };\n\n onMessage = async (message: Message) => {\n if (message.command === \"answer\") {\n const desc = JSON.parse(message.payload);\n await this.connection?.setRemoteDescription(desc);\n console.log(desc);\n } else if (message.command === \"candidate\") {\n console.log(\"remote-candidate\", message.payload);\n const candidate = JSON.parse(message.payload);\n await this.connection?.addIceCandidate(candidate);\n } else if (message.command === \"received_rtcp_stats\") {\n // const stats = JSON.parse(message.payload, (key, value) => {\n // if (\"Time\" === key) {\n // return new Date(value);\n // }\n // return value;\n // });\n const stats = JSON.parse(message.payload);\n this.serverStatsSubject.next(stats);\n } else if (message.command === \"bye\") {\n const stats = JSON.parse(message.payload);\n console.log(stats);\n this.stateSubject.next(TestEngineState.ENDED);\n this.dispose();\n }\n };\n\n public get stateStream(): Observable {\n return this.stateSubject.asObservable();\n }\n\n public get state(): TestEngineState {\n return this.stateSubject.value;\n }\n\n public get serverStatsStream(): Observable {\n return this.serverStatsSubject.asObservable();\n }\n\n public get waveformStream(): Observable {\n return this.waveformSubject.asObservable();\n }\n\n public get wholeWaveformStream(): Observable {\n return this.wholeWaveformSubject.asObservable();\n }\n\n public get isEnded() {\n return (\n this.state === TestEngineState.ENDED ||\n this.state == TestEngineState.ERROR\n );\n }\n\n public get isTesting() {\n return !this.isEnded;\n }\n}\n\nexport enum TestEngineState {\n INITIALIZING,\n TESTING,\n ENDED,\n ERROR,\n}\n// window.AudioWorkletNode\n// class TestProcessor extends AudioWorkletProcessor {\n// process(\n// inputs: Float32Array[][],\n// outputs: Float32Array[][],\n// parameters: Map\n// ) {\n// // const output = outputs[0];\n// // output.forEach((channel) => {\n// // for (let i = 0; i < channel.length; i++) {\n// // channel[i] = Math.random() * 2 - 1;\n// // }\n// // });\n// console.log(\"TestProcessor.process\");\n// return true;\n// }\n// }\n\n// registerProcessor(\"test-processor\", () => new TestProcessor());\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/**\n * 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","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","/**\n * Helper method that determines when to recalculate row or column metadata.\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); // 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\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import * as React from 'react';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nvar bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": PropTypes.number.isRequired,\n \"rowIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": PropTypes.number.isRequired,\n \"isScrolling\": PropTypes.bool.isRequired,\n \"isVisible\": PropTypes.bool.isRequired,\n \"key\": PropTypes.string.isRequired,\n \"parent\": PropTypes.object.isRequired,\n \"rowIndex\": PropTypes.number.isRequired,\n \"style\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.node.isRequired);\nvar bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.object.isRequired);\nvar bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"cellCache\": PropTypes.objectOf(PropTypes.node.isRequired).isRequired,\n \"cellRenderer\": PropTypes.func.isRequired,\n \"columnSizeAndPositionManager\": function columnSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"columnStartIndex\": PropTypes.number.isRequired,\n \"columnStopIndex\": PropTypes.number.isRequired,\n \"deferredMeasurementCache\": PropTypes.object,\n \"horizontalOffsetAdjustment\": PropTypes.number.isRequired,\n \"isScrolling\": PropTypes.bool.isRequired,\n \"isScrollingOptOut\": PropTypes.bool.isRequired,\n \"parent\": PropTypes.object.isRequired,\n \"rowSizeAndPositionManager\": function rowSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"rowStartIndex\": PropTypes.number.isRequired,\n \"rowStopIndex\": PropTypes.number.isRequired,\n \"scrollLeft\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired,\n \"styleCache\": PropTypes.objectOf(PropTypes.object.isRequired).isRequired,\n \"verticalOffsetAdjustment\": PropTypes.number.isRequired,\n \"visibleColumnIndices\": PropTypes.object.isRequired,\n \"visibleRowIndices\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOfType([PropTypes.func, PropTypes.number]);\nvar bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": PropTypes.number.isRequired,\n \"clientWidth\": PropTypes.number.isRequired,\n \"scrollHeight\": PropTypes.number.isRequired,\n \"scrollLeft\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired,\n \"scrollWidth\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {\n \"horizontal\": PropTypes.bool.isRequired,\n \"vertical\": PropTypes.bool.isRequired,\n \"size\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {\n \"columnOverscanStartIndex\": PropTypes.number.isRequired,\n \"columnOverscanStopIndex\": PropTypes.number.isRequired,\n \"columnStartIndex\": PropTypes.number.isRequired,\n \"columnStopIndex\": PropTypes.number.isRequired,\n \"rowOverscanStartIndex\": PropTypes.number.isRequired,\n \"rowOverscanStopIndex\": PropTypes.number.isRequired,\n \"rowStartIndex\": PropTypes.number.isRequired,\n \"rowStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {\n // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL\n \"direction\": PropTypes.oneOf([\"horizontal\", \"vertical\"]).isRequired,\n // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD\n \"scrollDirection\": PropTypes.oneOf([-1, 1]).isRequired,\n // Number of rows or columns in the current axis\n \"cellCount\": PropTypes.number.isRequired,\n // Maximum number of cells to over-render in either direction\n \"overscanCellsCount\": PropTypes.number.isRequired,\n // Begin of range of visible cells\n \"startIndex\": PropTypes.number.isRequired,\n // End of range of visible cells\n \"stopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": PropTypes.number.isRequired,\n \"overscanStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOf([\"auto\", \"end\", \"start\", \"center\"]);\nvar bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {\n \"start\": PropTypes.number,\n \"stop\": PropTypes.number\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellPosition };\nexport { bpfrpt_proptype_CellRendererParams };\nexport { bpfrpt_proptype_CellRenderer };\nexport { bpfrpt_proptype_CellCache };\nexport { bpfrpt_proptype_StyleCache };\nexport { bpfrpt_proptype_CellRangeRendererParams };\nexport { bpfrpt_proptype_CellRangeRenderer };\nexport { bpfrpt_proptype_CellSizeGetter };\nexport { bpfrpt_proptype_CellSize };\nexport { bpfrpt_proptype_NoContentRenderer };\nexport { bpfrpt_proptype_Scroll };\nexport { bpfrpt_proptype_ScrollbarPresenceChange };\nexport { bpfrpt_proptype_RenderedSection };\nexport { bpfrpt_proptype_OverscanIndicesGetterParams };\nexport { bpfrpt_proptype_OverscanIndices };\nexport { bpfrpt_proptype_OverscanIndicesGetter };\nexport { bpfrpt_proptype_Alignment };\nexport { bpfrpt_proptype_VisibleCellRange };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\n/**\n * Just-in-time calculates and caches size and position information for a collection of cells.\n */\nvar CellSizeAndPositionManager =\n/*#__PURE__*/\nfunction () {\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 // Measurements for cells up to this index can be trusted; cells afterward should be estimated.\n // Used in deferred mode to track which cells have been queued for measurement.\n function CellSizeAndPositionManager(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeGetter = _ref.cellSizeGetter,\n estimatedCellSize = _ref.estimatedCellSize;\n\n _classCallCheck(this, CellSizeAndPositionManager);\n\n _defineProperty(this, \"_cellSizeAndPositionData\", {});\n\n _defineProperty(this, \"_lastMeasuredIndex\", -1);\n\n _defineProperty(this, \"_lastBatchedIndex\", -1);\n\n _defineProperty(this, \"_cellCount\", void 0);\n\n _defineProperty(this, \"_cellSizeGetter\", void 0);\n\n _defineProperty(this, \"_estimatedCellSize\", void 0);\n\n this._cellSizeGetter = cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\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 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 * 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 \".concat(index, \" is outside of range 0..\").concat(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({\n index: i\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\n\n if (size === undefined || isNaN(size)) {\n throw Error(\"Invalid size returned for cell \".concat(i, \" of value \").concat(size));\n } else if (size === null) {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: 0\n };\n this._lastBatchedIndex = index;\n } else {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: size\n };\n offset += size;\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 * 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 * 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 === void 0 ? '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 var idealOffset;\n\n switch (align) {\n case 'start':\n idealOffset = maxOffset;\n break;\n\n case 'end':\n idealOffset = minOffset;\n break;\n\n case 'center':\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n break;\n }\n\n var totalSize = this.getTotalSize();\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 var totalSize = this.getTotalSize();\n\n if (totalSize === 0) {\n return {};\n }\n\n var maxOffset = offset + containerSize;\n\n var start = this._findNearestCell(offset);\n\n var datum = this.getSizeAndPositionOfCell(start);\n offset = datum.offset + datum.size;\n var stop = start;\n\n while (offset < maxOffset && stop < this._cellCount - 1) {\n stop++;\n offset += this.getSizeAndPositionOfCell(stop).size;\n }\n\n return {\n start: start,\n stop: stop\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 * 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 \".concat(offset, \" specified\"));\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\n\n offset = Math.max(0, offset);\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 { CellSizeAndPositionManager as default };\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;\n};\n\nexport var getMaxElementSize = function getMaxElementSize() {\n if (isBrowser()) {\n if (isChrome()) {\n return CHROME_MAX_ELEMENT_SIZE;\n }\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\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport CellSizeAndPositionManager from './CellSizeAndPositionManager';\nimport { getMaxElementSize } from './maxElementSize.js';\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 =\n/*#__PURE__*/\nfunction () {\n function ScalingCellSizeAndPositionManager(_ref) {\n var _ref$maxScrollSize = _ref.maxScrollSize,\n maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,\n params = _objectWithoutProperties(_ref, [\"maxScrollSize\"]);\n\n _classCallCheck(this, ScalingCellSizeAndPositionManager);\n\n _defineProperty(this, \"_cellSizeAndPositionManager\", void 0);\n\n _defineProperty(this, \"_maxScrollSize\", void 0);\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 * 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\n var safeTotalSize = this.getTotalSize();\n\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 /** See CellSizeAndPositionManager#getTotalSize */\n\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());\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 === void 0 ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\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 /** See CellSizeAndPositionManager#getVisibleCellRange */\n\n }, {\n key: \"getVisibleCellRange\",\n value: function getVisibleCellRange(_ref4) {\n var containerSize = _ref4.containerSize,\n offset = _ref4.offset;\n offset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: offset\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 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\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\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 { ScalingCellSizeAndPositionManager as default };\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"../types\";\nimport { bpfrpt_proptype_VisibleCellRange } from \"../types\";","/**\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 var cachedIndices = {};\n return function (_ref) {\n var callback = _ref.callback,\n indices = _ref.indices;\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 return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n });\n cachedIndices = indices;\n\n if (allInitialized && indexChanged) {\n callback(indices);\n }\n };\n}","import ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager.js';\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 var cellCount = cellSizeAndPositionManager.getCellCount();\n var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;\n var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // 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\n if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback(scrollToIndex); // 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\";","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","// Properly handle server-side rendering.\nvar win;\n\nif (typeof window !== 'undefined') {\n win = window;\n} else if (typeof self !== 'undefined') {\n win = self;\n} else {\n win = {};\n} // requestAnimationFrame() shim by Paul Irish\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n\n\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 _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport clsx from 'clsx';\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/scrollbarSize';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\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 */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\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 */\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_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 var _this;\n\n _classCallCheck(this, Grid);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"_onGridRenderedMemoizer\", createCallbackMemoizer());\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollLeftFlag\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollTopFlag\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_horizontalScrollBarSize\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_verticalScrollBarSize\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollbarPresenceChanged\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollingContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_childrenToDisplay\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollTop\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollLeft\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_disablePointerEventsTimeoutId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_styleCache\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_cellCache\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceScrollEndedCallback\", function () {\n _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache\n\n _this.setState({\n isScrolling: false,\n needToResetStyleCache: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnGridRenderedHelper\", function () {\n var onSectionRendered = _this.props.onSectionRendered;\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 _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_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 _this.state = {\n instanceProps: {\n columnSizeAndPositionManager: columnSizeAndPositionManager,\n rowSizeAndPositionManager: rowSizeAndPositionManager,\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 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 needToResetStyleCache: false\n };\n\n if (props.scrollToRow > 0) {\n _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);\n }\n\n if (props.scrollToColumn > 0) {\n _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);\n }\n\n return _this;\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 === void 0 ? this.props.scrollToAlignment : _ref$alignment,\n _ref$columnIndex = _ref.columnIndex,\n columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,\n _ref$rowIndex = _ref.rowIndex,\n rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;\n\n var offsetProps = _objectSpread({}, 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 * 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 * 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 * 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 === void 0 ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTopParam = _ref2$scrollTop === void 0 ? 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 } // Prevent pointer events from interrupting a smooth scroll\n\n\n this._debounceScrollEnded();\n\n var _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n autoWidth = _this$props.autoWidth,\n height = _this$props.height,\n width = _this$props.width;\n var instanceProps = this.state.instanceProps; // 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); // 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\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 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 * 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 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 * 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 _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n rowCount = _this$props2.rowCount;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);\n instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);\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 === void 0 ? 0 : _ref4$columnIndex,\n _ref4$rowIndex = _ref4.rowIndex,\n rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;\n\n var _this$props3 = this.props,\n scrollToColumn = _this$props3.scrollToColumn,\n scrollToRow = _this$props3.scrollToRow;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);\n instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // 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\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); // Clear cell cache in case we are scrolling;\n // Invalid row heights likely mean invalid cached content as well.\n\n this._styleCache = {};\n this._cellCache = {};\n this.forceUpdate();\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 var props = this.props; // 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\n if (columnCount > 1 && columnIndex !== undefined) {\n this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {\n scrollToColumn: columnIndex\n }));\n }\n\n if (rowIndex !== undefined) {\n this._updateScrollTopForScrollToRow(_objectSpread({}, props, {\n scrollToRow: rowIndex\n }));\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n getScrollbarSize = _this$props4.getScrollbarSize,\n height = _this$props4.height,\n scrollLeft = _this$props4.scrollLeft,\n scrollToColumn = _this$props4.scrollToColumn,\n scrollTop = _this$props4.scrollTop,\n scrollToRow = _this$props4.scrollToRow,\n width = _this$props4.width;\n var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser\n\n this._initialScrollTop = 0;\n this._initialScrollLeft = 0; // 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(); // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n\n if (!instanceProps.scrollbarSizeMeasured) {\n this.setState(function (prevState) {\n var stateUpdate = _objectSpread({}, prevState, {\n needToResetStyleCache: false\n });\n\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\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n } // refs don't work in `react-test-renderer`\n\n\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\n if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {\n this._scrollingContainer.scrollTop = this.state.scrollTop;\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\n\n var sizeIsBiggerThanZero = height > 0 && width > 0;\n\n if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollLeftForScrollToColumn();\n }\n\n if (scrollToRow >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollTopForScrollToRow();\n } // Update onRowsRendered callback\n\n\n this._invokeOnGridRenderedHelper(); // Initialize onScroll callback\n\n\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 * @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 _this$props5 = this.props,\n autoHeight = _this$props5.autoHeight,\n autoWidth = _this$props5.autoWidth,\n columnCount = _this$props5.columnCount,\n height = _this$props5.height,\n rowCount = _this$props5.rowCount,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToColumn = _this$props5.scrollToColumn,\n scrollToRow = _this$props5.scrollToRow,\n width = _this$props5.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollPositionChangeReason = _this$state.scrollPositionChangeReason,\n scrollTop = _this$state.scrollTop,\n instanceProps = _this$state.instanceProps; // 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(); // 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\n\n var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // 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 // @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\n if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollTop = scrollTop;\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\n\n var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // 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\n if (this._recomputeScrollLeftFlag) {\n this._recomputeScrollLeftFlag = false;\n\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\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 } // Update onRowsRendered callback if start/stop indices have changed\n\n\n this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners\n\n\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 * 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 _this$props6 = this.props,\n autoContainerWidth = _this$props6.autoContainerWidth,\n autoHeight = _this$props6.autoHeight,\n autoWidth = _this$props6.autoWidth,\n className = _this$props6.className,\n containerProps = _this$props6.containerProps,\n containerRole = _this$props6.containerRole,\n containerStyle = _this$props6.containerStyle,\n height = _this$props6.height,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n role = _this$props6.role,\n style = _this$props6.style,\n tabIndex = _this$props6.tabIndex,\n width = _this$props6.width;\n var _this$state2 = this.state,\n instanceProps = _this$state2.instanceProps,\n needToResetStyleCache = _this$state2.needToResetStyleCache;\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 } // calculate _styleCache here\n // if state.isScrolling (not from _isScrolling) then reset\n\n\n if (!this.state.isScrolling) {\n this._resetStyleCache();\n } // calculate children to render here\n\n\n this._calculateChildrenToRender(this.props, this.state);\n\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // 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\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 } // 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\n\n gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n var childrenToDisplay = this._childrenToDisplay;\n var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;\n return React.createElement(\"div\", _extends({\n ref: this._setScrollingContainerRef\n }, containerProps, {\n \"aria-label\": this.props['aria-label'],\n \"aria-readonly\": this.props['aria-readonly'],\n className: clsx('ReactVirtualized__Grid', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread({}, gridStyle, {}, style),\n tabIndex: tabIndex\n }), childrenToDisplay.length > 0 && React.createElement(\"div\", {\n className: \"ReactVirtualized__Grid__innerScrollContainer\",\n role: containerRole,\n style: _objectSpread({\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), showNoContentRenderer && noContentRenderer());\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 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 = []; // Render only enough columns and rows to cover the visible area of the grid.\n\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 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 }); // Store for _invokeOnGridRenderedHelper()\n\n this._renderedColumnStartIndex = visibleColumnIndices.start;\n this._renderedColumnStopIndex = visibleColumnIndices.stop;\n this._renderedRowStartIndex = visibleRowIndices.start;\n this._renderedRowStopIndex = visibleRowIndices.stop;\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 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 }); // Store for _invokeOnGridRenderedHelper()\n\n var columnStartIndex = overscanColumnIndices.overscanStartIndex;\n var columnStopIndex = overscanColumnIndices.overscanStopIndex;\n var rowStartIndex = overscanRowIndices.overscanStartIndex;\n var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.\n\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 } // 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\n\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 }); // update the indices\n\n this._columnStartIndex = columnStartIndex;\n this._columnStopIndex = columnStopIndex;\n this._rowStartIndex = rowStartIndex;\n this._rowStopIndex = rowStopIndex;\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 if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);\n }\n }, {\n key: \"_handleInvalidatedGridSize\",\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 this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\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 _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\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 // 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 this._scrollbarPresenceChanged = false;\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 * 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 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\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 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; // 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 = {}; // Copy over the visible cell styles so avoid unnecessary re-render.\n\n for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {\n for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {\n var key = \"\".concat(rowIndex, \"-\").concat(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\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; // 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; // Initially we should not clearStyleCache\n\n newState.needToResetStyleCache = false;\n\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 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 } // If scrolling is controlled outside this component, clear cache when scrolling stops\n\n\n if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {\n Object.assign(newState, {\n isScrolling: false\n });\n }\n\n var maybeStateA;\n var maybeStateB;\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 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; // getting scrollBarSize (moved from componentWillMount)\n\n instanceProps.scrollbarSize = nextProps.getScrollbarSize();\n\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 return _objectSpread({}, 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 * 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 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\n return {};\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 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 return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: width - scrollBarSize,\n currentOffset: scrollLeft,\n targetIndex: targetIndex\n });\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\n return {};\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 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 return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: height - scrollBarSize,\n currentOffset: scrollTop,\n targetIndex: targetIndex\n });\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\n return {};\n }\n }]);\n\n return Grid;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": PropTypes.string.isRequired,\n \"aria-readonly\": PropTypes.bool,\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 * 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 * 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 /** 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 /** 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 /** Optional custom CSS class name to attach to root Grid element. */\n \"className\": PropTypes.string,\n\n /** Number of columns in grid. */\n \"columnCount\": PropTypes.number.isRequired,\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 /** Unfiltered props for the Grid container. */\n \"containerProps\": PropTypes.object,\n\n /** ARIA role for the cell-container. */\n \"containerRole\": PropTypes.string.isRequired,\n\n /** Optional inline style applied to inner cell-container */\n \"containerStyle\": PropTypes.object.isRequired,\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 * 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 * 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 /** Exposed for testing purposes only. */\n \"getScrollbarSize\": PropTypes.func.isRequired,\n\n /** Height of Grid; this property determines the number of visible (vs virtualized) rows. */\n \"height\": PropTypes.number.isRequired,\n\n /** Optional custom id to attach to root Grid element. */\n \"id\": PropTypes.string,\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 * 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 /** 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 * 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 * 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 /** Callback invoked with information about the section of the Grid that was just rendered. */\n \"onSectionRendered\": PropTypes.func.isRequired,\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 * 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 * 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 /** ARIA role for the grid element. */\n \"role\": PropTypes.string.isRequired,\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 /** Number of rows in grid. */\n \"rowCount\": PropTypes.number.isRequired,\n\n /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n\n /** Horizontal offset. */\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\": 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 /** Column index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToColumn\": PropTypes.number.isRequired,\n\n /** Vertical offset. */\n \"scrollTop\": PropTypes.number,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToRow\": PropTypes.number.isRequired,\n\n /** Optional inline style */\n \"style\": PropTypes.object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": PropTypes.number,\n\n /** Width of Grid; this property determines the number of visible (vs virtualized) columns. */\n \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(Grid, \"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});\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\";","import { caf, raf } from './animationFrame';\nvar bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {\n \"id\": PropTypes.number.isRequired\n};\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\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 */\n\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start; // wait for end of processing current event handler, because event handler may be long\n\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 return frame;\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_AnimationTimeoutId };","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\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 * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\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 var renderedCells = []; // 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\n var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();\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 = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.\n\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 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 var renderedCell = void 0; // 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\n if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {\n if (!cellCache[key]) {\n cellCache[key] = cellRenderer(cellRendererParams);\n }\n\n renderedCell = cellCache[key]; // 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 console.warn('Rendered cell should include style property for positioning.');\n }\n }\n }\n}\n\nimport { bpfrpt_proptype_CellRangeRendererParams } from \"./types\";","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\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 // 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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ArrowKeyStepper, _React$PureComponent);\n\n function ArrowKeyStepper() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ArrowKeyStepper);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollToColumn: 0,\n scrollToRow: 0,\n instanceProps: {\n prevScrollToColumn: 0,\n prevScrollToRow: 0\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_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 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; // 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\n case 'ArrowLeft':\n scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);\n break;\n\n case 'ArrowRight':\n scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);\n break;\n\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({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref) {\n var columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex;\n _this._columnStartIndex = columnStartIndex;\n _this._columnStopIndex = columnStopIndex;\n _this._rowStartIndex = rowStartIndex;\n _this._rowStopIndex = rowStopIndex;\n });\n\n return _this;\n }\n\n _createClass(ArrowKeyStepper, [{\n key: \"setScrollIndexes\",\n value: function setScrollIndexes(_ref2) {\n var scrollToColumn = _ref2.scrollToColumn,\n scrollToRow = _ref2.scrollToRow;\n this.setState({\n scrollToRow: scrollToRow,\n scrollToColumn: scrollToColumn\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n children = _this$props2.children;\n\n var _this$_getScrollState3 = this._getScrollState(),\n scrollToColumn = _this$_getScrollState3.scrollToColumn,\n scrollToRow = _this$_getScrollState3.scrollToRow;\n\n return React.createElement(\"div\", {\n className: className,\n onKeyDown: this._onKeyDown\n }, children({\n onSectionRendered: this._onSectionRendered,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\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(_ref3) {\n var scrollToColumn = _ref3.scrollToColumn,\n scrollToRow = _ref3.scrollToRow;\n var _this$props3 = this.props,\n isControlled = _this$props3.isControlled,\n onScrollToChange = _this$props3.onScrollToChange;\n\n if (typeof onScrollToChange === 'function') {\n onScrollToChange({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n\n if (!isControlled) {\n this.setState({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.isControlled) {\n return {};\n }\n\n if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {\n return _objectSpread({}, prevState, {\n scrollToColumn: nextProps.scrollToColumn,\n scrollToRow: nextProps.scrollToRow,\n instanceProps: {\n prevScrollToColumn: nextProps.scrollToColumn,\n prevScrollToRow: nextProps.scrollToRow\n }\n });\n }\n\n return {};\n }\n }]);\n\n return ArrowKeyStepper;\n}(React.PureComponent), _defineProperty(_class, \"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}), _temp);\n\n_defineProperty(ArrowKeyStepper, \"defaultProps\", {\n disabled: false,\n isControlled: false,\n mode: 'edges',\n scrollToColumn: 0,\n scrollToRow: 0\n});\n\npolyfill(ArrowKeyStepper);\nexport default ArrowKeyStepper;\nimport { bpfrpt_proptype_RenderedSection } from \"../Grid\";\nimport { bpfrpt_proptype_ScrollIndices } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport createDetectElementResize from '../vendor/detectElementResize';\nvar AutoSizer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(AutoSizer, _React$Component);\n\n function AutoSizer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AutoSizer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_parentNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_autoSizer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_window\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n _defineProperty(_assertThisInitialized(_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 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 var height = _this._parentNode.offsetHeight || 0;\n var width = _this._parentNode.offsetWidth || 0;\n var win = _this._window || window;\n var style = win.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 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({\n height: height,\n width: width\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (autoSizer) {\n _this._autoSizer = autoSizer;\n });\n\n return _this;\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 this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n\n this._detectElementResize = createDetectElementResize(nonce, this._window);\n\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 _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disableHeight = _this$props2.disableHeight,\n disableWidth = _this$props2.disableWidth,\n style = _this$props2.style;\n var _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width; // 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 = {\n overflow: 'visible'\n };\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 * 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\n return React.createElement(\"div\", {\n className: className,\n ref: this._setRef,\n style: _objectSpread({}, outerStyle, {}, style)\n }, children(childParams));\n }\n }]);\n\n return AutoSizer;\n}(React.Component), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n \"children\": PropTypes.func.isRequired,\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n \"className\": PropTypes.string,\n\n /** Default height to use for initial render; useful for SSR */\n \"defaultHeight\": PropTypes.number,\n\n /** Default width to use for initial render; useful for SSR */\n \"defaultWidth\": PropTypes.number,\n\n /** Disable dynamic :height property */\n \"disableHeight\": PropTypes.bool.isRequired,\n\n /** Disable dynamic :width property */\n \"disableWidth\": PropTypes.bool.isRequired,\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n \"nonce\": PropTypes.string,\n\n /** Callback to be invoked on-resize */\n \"onResize\": PropTypes.func.isRequired,\n\n /** Optional inline style */\n \"style\": PropTypes.object\n}), _temp);\n\n_defineProperty(AutoSizer, \"defaultProps\", {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n});\n\nexport { AutoSizer as default };\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 * 5) Added support for injecting custom window object\n **/\nexport default function createDetectElementResize(nonce, hostWindow) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n\n if (typeof hostWindow !== 'undefined') {\n _window = hostWindow;\n } else 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 _window.document !== 'undefined' && _window.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\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n /* Detect CSS Animations support to detect element display/re-attach */\n\n\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 = _window.document.createElement('fakeelement');\n\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 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 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\n var elementStyle = _window.getComputedStyle(element);\n\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n var resizeTriggersHtml = '
' + '
';\n\n if (window.trustedTypes) {\n var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {\n createHTML: function createHTML() {\n return resizeTriggersHtml;\n }\n });\n element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');\n } else {\n element.__resizeTriggers__.innerHTML = resizeTriggersHtml;\n }\n\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n /* Listen for a css animation to detect element display/re-attach */\n\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\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\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n\n element.__resizeTriggers__.__animationListener__ = null;\n }\n\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {// Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}","var bpfrpt_proptype_CellMeasureCache = process.env.NODE_ENV === 'production' ? null : {\n \"hasFixedWidth\": PropTypes.func.isRequired,\n \"hasFixedHeight\": PropTypes.func.isRequired,\n \"has\": PropTypes.func.isRequired,\n \"set\": PropTypes.func.isRequired,\n \"getHeight\": PropTypes.func.isRequired,\n \"getWidth\": PropTypes.func.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellMeasureCache };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CellMeasurer, _React$PureComponent);\n\n function CellMeasurer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CellMeasurer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n _defineProperty(_assertThisInitialized(_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 === void 0 ? 0 : _this$props$columnInd,\n parent = _this$props.parent,\n _this$props$rowIndex = _this$props.rowIndex,\n rowIndex = _this$props$rowIndex === void 0 ? _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 });\n\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('CellMeasurer registerChild expects to be passed Element or null');\n }\n\n _this._child = element;\n\n if (element) {\n _this._maybeMeasureCell();\n }\n });\n\n return _this;\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 return typeof children === 'function' ? children({\n measure: this._measure,\n registerChild: this._registerChild\n }) : children;\n }\n }, {\n key: \"_getCellMeasurements\",\n value: function _getCellMeasurements() {\n var cache = this.props.cache;\n var node = this._child || findDOMNode(this); // 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; // 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\n if (!cache.hasFixedWidth()) {\n node.style.width = 'auto';\n }\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); // Reset after measuring to avoid breaking styles; see #660\n\n if (styleWidth) {\n node.style.width = styleWidth;\n }\n\n if (styleHeight) {\n node.style.height = styleHeight;\n }\n\n return {\n height: height,\n width: width\n };\n } else {\n return {\n height: 0,\n width: 0\n };\n }\n }\n }, {\n key: \"_maybeMeasureCell\",\n value: function _maybeMeasureCell() {\n var _this$props2 = this.props,\n cache = _this$props2.cache,\n _this$props2$columnIn = _this$props2.columnIndex,\n columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,\n parent = _this$props2.parent,\n _this$props2$rowIndex = _this$props2.rowIndex,\n rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;\n\n if (!cache.has(rowIndex, columnIndex)) {\n var _this$_getCellMeasure2 = this._getCellMeasurements(),\n height = _this$_getCellMeasure2.height,\n width = _this$_getCellMeasure2.width;\n\n cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.\n\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), _defineProperty(_class, \"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}), _temp); // Used for DEV mode warning check\n\n_defineProperty(CellMeasurer, \"__internalCellMeasurerFlag\", false);\n\nexport { CellMeasurer as default };\n\nif (process.env.NODE_ENV !== 'production') {\n CellMeasurer.__internalCellMeasurerFlag = true;\n}\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\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\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/scrollbarSize'; // @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 */\n\nvar IS_SCROLLING_TIMEOUT = 150;\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 */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CollectionView, _React$PureComponent);\n\n // Invokes callbacks only when their values have changed.\n function CollectionView() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CollectionView);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n // We handle this case in componentDidMount()\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_calculateSizeAndPositionDataOnNextUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRenderedMemoizer\", createCallbackMemoizer());\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnSectionRenderedHelper\", function () {\n var _this$props = _this.props,\n cellLayoutManager = _this$props.cellLayoutManager,\n onSectionRendered = _this$props.onSectionRendered;\n\n _this._onSectionRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n indices: cellLayoutManager.getLastRenderedIndices()\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_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 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 _defineProperty(_assertThisInitialized(_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 } // Prevent pointer events from interrupting a smooth scroll\n\n\n _this._enablePointerEventsAfterDelay(); // 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\n\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 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)); // 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\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; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n\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\n if (_this._scrollbarSize === undefined) {\n _this._scrollbarSizeMeasured = false;\n _this._scrollbarSize = 0;\n } else {\n _this._scrollbarSizeMeasured = true;\n }\n\n return _this;\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 /* ---------------------------- 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 _this$props4 = this.props,\n cellLayoutManager = _this$props4.cellLayoutManager,\n scrollLeft = _this$props4.scrollLeft,\n scrollToCell = _this$props4.scrollToCell,\n scrollTop = _this$props4.scrollTop; // 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({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n } // Update onSectionRendered callback.\n\n\n this._invokeOnSectionRenderedHelper();\n\n var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge2.height,\n totalWidth = _cellLayoutManager$ge2.width; // 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 _this$props5 = this.props,\n height = _this$props5.height,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToCell = _this$props5.scrollToCell,\n width = _this$props5.width;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,\n scrollTop = _this$state2.scrollTop; // 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\n if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n } // Update scroll offsets if the current :scrollToCell values requires it\n\n\n if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n this._updateScrollPositionForScrollToCell();\n } // Update onRowsRendered callback if start/stop indices have changed\n\n\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 _this$props6 = this.props,\n autoHeight = _this$props6.autoHeight,\n cellCount = _this$props6.cellCount,\n cellLayoutManager = _this$props6.cellLayoutManager,\n className = _this$props6.className,\n height = _this$props6.height,\n horizontalOverscanSize = _this$props6.horizontalOverscanSize,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n style = _this$props6.style,\n verticalOverscanSize = _this$props6.verticalOverscanSize,\n width = _this$props6.width;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollLeft = _this$state3.scrollLeft,\n scrollTop = _this$state3.scrollTop; // 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 cellLayoutManager.calculateSizeAndPositionData();\n }\n\n var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge3.height,\n totalWidth = _cellLayoutManager$ge3.width; // 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 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 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 }; // 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\n var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // 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\n collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Collection', className),\n id: id,\n onScroll: this._onScroll,\n role: \"grid\",\n style: _objectSpread({}, collectionStyle, {}, style),\n tabIndex: 0\n }, cellCount > 0 && React.createElement(\"div\", {\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), cellCount === 0 && noContentRenderer());\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 isScrollingChange(false);\n _this2._disablePointerEventsTimeoutId = null;\n\n _this2.setState({\n isScrolling: false\n });\n }, IS_SCROLLING_TIMEOUT);\n }\n }, {\n key: \"_invokeOnScrollMemoizer\",\n value: function _invokeOnScrollMemoizer(_ref) {\n var _this3 = this;\n\n var scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n totalHeight = _ref.totalHeight,\n totalWidth = _ref.totalWidth;\n\n this._onScrollMemoizer({\n callback: function callback(_ref2) {\n var scrollLeft = _ref2.scrollLeft,\n scrollTop = _ref2.scrollTop;\n var _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\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(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\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 scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\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 scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n }\n\n return null;\n }\n }]);\n\n return CollectionView;\n}(React.PureComponent);\n\n_defineProperty(CollectionView, \"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});\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 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} : {};\npolyfill(CollectionView);\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 =\n/*#__PURE__*/\nfunction () {\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 this._indexMap = {};\n this._indices = [];\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\n this._indices.push(index);\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 /** Intended for debugger/test purposes only */\n\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.x, \",\").concat(this.y, \" \").concat(this.width, \"x\").concat(this.height);\n }\n }]);\n\n return Section;\n}();\n\nexport { Section as default };\nimport { bpfrpt_proptype_Index } from \"./types\";\nimport { bpfrpt_proptype_SizeAndPositionInfo } from \"./types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\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';\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 =\n/*#__PURE__*/\nfunction () {\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 this._cellMetadata = [];\n this._sections = {};\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 var indices = {};\n this.getSections({\n height: height,\n width: width,\n x: x,\n y: y\n }).forEach(function (section) {\n return section.getCellIndices().forEach(function (index) {\n indices[index] = index;\n });\n }); // Object keys are strings; this function returns numbers\n\n return Object.keys(indices).map(function (index) {\n return indices[index];\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 return this._cellMetadata[index];\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 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 var sections = [];\n\n for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n var key = \"\".concat(sectionX, \".\").concat(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 /** 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 /** 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 /** 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 this._cellMetadata[index] = cellMetadatum;\n this.getSections(cellMetadatum).forEach(function (section) {\n return section.addCellIndex({\n index: index\n });\n });\n }\n }]);\n\n return SectionManager;\n}();\n\nexport { SectionManager as default };\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 === void 0 ? 'auto' : _ref$align,\n cellOffset = _ref.cellOffset,\n cellSize = _ref.cellSize,\n containerSize = _ref.containerSize,\n currentOffset = _ref.currentOffset;\n var maxOffset = cellOffset;\n var minOffset = maxOffset - containerSize + cellSize;\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return maxOffset - (containerSize - cellSize) / 2;\n\n default:\n return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Collection, _React$PureComponent);\n\n function Collection(props, context) {\n var _this;\n\n _classCallCheck(this, Collection);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context));\n _this._cellMetadata = [];\n _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)\n\n _this._cellCache = [];\n _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this));\n _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_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 /** See Collection#recomputeCellSizesAndPositions */\n\n }, {\n key: \"recomputeCellSizesAndPositions\",\n value: function recomputeCellSizesAndPositions() {\n this._cellCache = [];\n\n this._collectionView.recomputeCellSizesAndPositions();\n }\n /** React lifecycle methods */\n\n }, {\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n\n return React.createElement(CollectionView, _extends({\n cellLayoutManager: this,\n isScrollingChange: this._isScrollingChange,\n ref: this._setCollectionViewRef\n }, props));\n }\n /** CellLayoutManager interface */\n\n }, {\n key: \"calculateSizeAndPositionData\",\n value: function calculateSizeAndPositionData() {\n var _this$props = this.props,\n cellCount = _this$props.cellCount,\n cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,\n sectionSize = _this$props.sectionSize;\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 * 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 * 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 if (cellIndex >= 0 && cellIndex < cellCount) {\n var cellMetadata = this._cellMetadata[cellIndex];\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 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 _this$props2 = this.props,\n cellGroupRenderer = _this$props2.cellGroupRenderer,\n cellRenderer = _this$props2.cellRenderer; // 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 return cellGroupRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n var index = _ref3.index;\n return _this2._sectionManager.getCellMetadata({\n index: index\n });\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\n_defineProperty(Collection, \"defaultProps\", {\n 'aria-label': 'grid',\n cellGroupRenderer: defaultCellGroupRenderer\n});\n\nexport { Collection as default };\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\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 return indices.map(function (index) {\n var cellMetadata = cellSizeAndPositionGetter({\n 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 }; // 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\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}\n\nimport { bpfrpt_proptype_ScrollPosition } from \"./types\";\nimport { bpfrpt_proptype_SizeInfo } from \"./types\";","import SectionManager from '../SectionManager';\nexport default function calculateSizeAndPositionData(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n sectionSize = _ref.sectionSize;\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({\n index: index\n });\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 \".concat(index, \":\\n x:\").concat(cellMetadatum.x, \", y:\").concat(cellMetadatum.y, \", width:\").concat(cellMetadatum.width, \", height:\").concat(cellMetadatum.height));\n }\n\n height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\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';\nexport default Collection;\nexport { Collection };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\n\nvar ColumnSizer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnSizer, _React$PureComponent);\n\n function ColumnSizer(props, context) {\n var _this;\n\n _classCallCheck(this, ColumnSizer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizer).call(this, props, context));\n _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ColumnSizer, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n columnMaxWidth = _this$props.columnMaxWidth,\n columnMinWidth = _this$props.columnMinWidth,\n columnCount = _this$props.columnCount,\n width = _this$props.width;\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 _this$props2 = this.props,\n children = _this$props2.children,\n columnMaxWidth = _this$props2.columnMaxWidth,\n columnMinWidth = _this$props2.columnMinWidth,\n columnCount = _this$props2.columnCount,\n width = _this$props2.width;\n var safeColumnMinWidth = columnMinWidth || 1;\n var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n var columnWidth = width / columnCount;\n columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n columnWidth = Math.floor(columnWidth);\n var adjustedWidth = Math.min(width, columnWidth * columnCount);\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 { ColumnSizer as default };\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} : {};","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(InfiniteLoader, _React$PureComponent);\n\n function InfiniteLoader(props, context) {\n var _this;\n\n _classCallCheck(this, InfiniteLoader);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context));\n _this._loadMoreRowsMemoizer = createCallbackMemoizer();\n _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this));\n _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_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 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 unloadedRanges.forEach(function (unloadedRange) {\n var promise = loadMoreRows(unloadedRange);\n\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 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 _ref2,\n _this3 = this;\n\n var _this$props = this.props,\n isRowLoaded = _this$props.isRowLoaded,\n minimumBatchSize = _this$props.minimumBatchSize,\n rowCount = _this$props.rowCount,\n threshold = _this$props.threshold;\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 }); // For memoize comparison\n\n var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function (_ref3) {\n var startIndex = _ref3.startIndex,\n stopIndex = _ref3.stopIndex;\n return [startIndex, stopIndex];\n })));\n\n this._loadMoreRowsMemoizer({\n callback: function callback() {\n _this3._loadUnloadedRanges(unloadedRanges);\n },\n indices: {\n squashedUnloadedRanges: squashedUnloadedRanges\n }\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 * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\n\n\n_defineProperty(InfiniteLoader, \"defaultProps\", {\n minimumBatchSize: 10,\n rowCount: 0,\n threshold: 15\n});\n\nexport { InfiniteLoader as default };\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(_ref4) {\n var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,\n lastRenderedStopIndex = _ref4.lastRenderedStopIndex,\n startIndex = _ref4.startIndex,\n stopIndex = _ref4.stopIndex;\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\n\nexport function scanForUnloadedRanges(_ref5) {\n var isRowLoaded = _ref5.isRowLoaded,\n minimumBatchSize = _ref5.minimumBatchSize,\n rowCount = _ref5.rowCount,\n startIndex = _ref5.startIndex,\n stopIndex = _ref5.stopIndex;\n var unloadedRanges = [];\n var rangeStartIndex = null;\n var rangeStopIndex = null;\n\n for (var index = startIndex; index <= stopIndex; index++) {\n var loaded = isRowLoaded({\n index: index\n });\n\n if (!loaded) {\n rangeStopIndex = index;\n\n if (rangeStartIndex === null) {\n rangeStartIndex = index;\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n rangeStartIndex = rangeStopIndex = null;\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\n\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({\n index: _index\n })) {\n rangeStopIndex = _index;\n } else {\n break;\n }\n }\n\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\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\n\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({\n index: _index2\n })) {\n firstUnloadedRange.startIndex = _index2;\n } else {\n break;\n }\n }\n }\n\n return unloadedRanges;\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 */\n\nexport function forceUpdateReactVirtualizedComponent(component) {\n var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\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';\nexport default InfiniteLoader;\nexport { InfiniteLoader };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport * as React from 'react';\nimport clsx from 'clsx';\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(List, _React$PureComponent);\n\n function List() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, List);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"Grid\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRenderer\", function (_ref) {\n var parent = _ref.parent,\n rowIndex = _ref.rowIndex,\n style = _ref.style,\n isScrolling = _ref.isScrolling,\n isVisible = _ref.isVisible,\n key = _ref.key;\n var rowRenderer = _this.props.rowRenderer; // 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 widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');\n\n if (widthDescriptor && widthDescriptor.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 });\n\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (ref) {\n _this.Grid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (_ref2) {\n var clientHeight = _ref2.clientHeight,\n scrollHeight = _ref2.scrollHeight,\n scrollTop = _ref2.scrollTop;\n var onScroll = _this.props.onScroll;\n onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref3) {\n var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref3.rowOverscanStopIndex,\n rowStartIndex = _ref3.rowStartIndex,\n rowStopIndex = _ref3.rowStopIndex;\n var onRowsRendered = _this.props.onRowsRendered;\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n });\n\n return _this;\n }\n\n _createClass(List, [{\n key: \"forceUpdateGrid\",\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n /** See Grid#getOffsetForCell */\n\n }, {\n key: \"getOffsetForRow\",\n value: function getOffsetForRow(_ref4) {\n var alignment = _ref4.alignment,\n index = _ref4.index;\n\n if (this.Grid) {\n var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index,\n columnIndex: 0\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n return scrollTop;\n }\n\n return 0;\n }\n /** CellMeasurer compatibility */\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\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 /** CellMeasurer compatibility */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref6$columnIndex = _ref6.columnIndex,\n columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,\n _ref6$rowIndex = _ref6.rowIndex,\n rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\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 /** 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({\n 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 _this$props = this.props,\n className = _this$props.className,\n noRowsRenderer = _this$props.noRowsRenderer,\n scrollToIndex = _this$props.scrollToIndex,\n width = _this$props.width;\n var classNames = clsx('ReactVirtualized__List', className);\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), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\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.isRequired,\n\n /** Optional CSS class name */\n \"className\": PropTypes.string,\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 /** Height constraint for list (determines how many actual rows are rendered) */\n \"height\": PropTypes.number.isRequired,\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 /** Callback invoked with information about the slice of rows that were just rendered. */\n \"onRowsRendered\": 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 */\n \"onScroll\": PropTypes.func.isRequired,\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 * 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 /** 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 /** 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 /** Number of rows in list. */\n \"rowCount\": PropTypes.number.isRequired,\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 /** 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 /** Optional inline style */\n \"style\": PropTypes.object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": PropTypes.number,\n\n /** Width of list */\n \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(List, \"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});\n\nexport { List as default };\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\";","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\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 **/\nfunction _GEA(a, l, h, y) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x >= y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction _GEP(a, l, h, y, c) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\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\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x > y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction _GTP(a, l, h, y, c) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\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\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x < y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction _LTP(a, l, h, y, c) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\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\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x <= y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction _LEP(a, l, h, y, c) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\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\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\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\n return -1;\n}\n\nfunction _EQP(a, l, h, y, c) {\n l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n var p = c(x, y);\n\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\n return -1;\n}\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 **/\nimport bounds from './binarySearchBounds';\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\n if (idx < 0) {\n return NOT_FOUND;\n }\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\n if (this.left) {\n this.left.intervals(result);\n }\n\n if (this.right) {\n this.right.intervals(result);\n }\n\n return result;\n};\n\nproto.insert = function (interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n\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\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n\n var rw = this.right ? this.right.count : 0;\n\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n\n var r = this.left.remove(interval);\n\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\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n\n var lw = this.left ? this.left.count : 0;\n\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n\n var r = this.right.remove(interval);\n\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\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\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\n while (n.right) {\n p = n;\n n = n.right;\n }\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\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\n return SUCCESS;\n }\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\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n\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\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\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\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\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\n if (r) {\n return r;\n }\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\n if (r) {\n return r;\n }\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\n if (r) {\n return r;\n }\n }\n\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n\n if (r) {\n return r;\n }\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\n if (d) {\n return d;\n }\n\n return a[1] - b[1];\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1];\n\n if (d) {\n return d;\n }\n\n return a[0] - b[0];\n}\n\nfunction createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n\n var pts = [];\n\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n\n pts.sort(compareNumbers);\n var mid = pts[pts.length >> 1];\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n\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 } //Split center intervals\n\n\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);\n} //User friendly wrapper that makes it possible to support empty trees\n\n\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\n if (r === EMPTY) {\n this.root = null;\n }\n\n return r !== NOT_FOUND;\n }\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\n return 0;\n }\n});\nObject.defineProperty(tproto, 'intervals', {\n get: function get() {\n if (this.root) {\n return this.root.intervals([]);\n }\n\n return [];\n }\n});\nexport default function createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\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 _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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 =\n/*#__PURE__*/\nfunction () {\n function PositionCache() {\n _classCallCheck(this, PositionCache);\n\n _defineProperty(this, \"_columnSizeMap\", {});\n\n _defineProperty(this, \"_intervalTree\", createIntervalTree());\n\n _defineProperty(this, \"_leftMap\", {});\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 } // 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\n this._leftMap[index] = left;\n var columnSizeMap = this._columnSizeMap;\n var columnHeight = columnSizeMap[left];\n\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 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 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 { PositionCache as default };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport PositionCache from './PositionCache';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\nvar emptyObject = {};\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 */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Masonry, _React$PureComponent);\n\n function Masonry() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Masonry);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollTop: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStartIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStopIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionCache\", new PositionCache());\n\n _defineProperty(_assertThisInitialized(_this), \"_startIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_startIndexMemoized\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_stopIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_stopIndexMemoized\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingCallback\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n var height = _this.props.height;\n var eventScrollTop = event.currentTarget.scrollTop; // 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 scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // 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\n if (eventScrollTop !== scrollTop) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n\n _this._debounceResetIsScrolling(); // 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\n\n if (_this.state.scrollTop !== scrollTop) {\n _this.setState({\n isScrolling: true,\n scrollTop: scrollTop\n });\n }\n });\n\n return _this;\n }\n\n _createClass(Masonry, [{\n key: \"clearCellPositions\",\n value: function clearCellPositions() {\n this._positionCache = new PositionCache();\n this.forceUpdate();\n } // HACK This method signature was intended for Grid\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref) {\n var index = _ref.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 this._positionCache = new PositionCache();\n\n this._populatePositionCache(0, stopIndex);\n\n this.forceUpdate();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._checkInvalidateOnUpdate();\n\n this._invokeOnScrollCallback();\n\n this._invokeOnCellsRenderedCallback();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n this._checkInvalidateOnUpdate();\n\n this._invokeOnScrollCallback();\n\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 _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n cellCount = _this$props.cellCount,\n cellMeasurerCache = _this$props.cellMeasurerCache,\n cellRenderer = _this$props.cellRenderer,\n className = _this$props.className,\n height = _this$props.height,\n id = _this$props.id,\n keyMapper = _this$props.keyMapper,\n overscanByPixels = _this$props.overscanByPixels,\n role = _this$props.role,\n style = _this$props.style,\n tabIndex = _this$props.tabIndex,\n width = _this$props.width,\n rowDirection = _this$props.rowDirection;\n var _this$state = this.state,\n isScrolling = _this$state.isScrolling,\n scrollTop = _this$state.scrollTop;\n var children = [];\n\n var estimateTotalHeight = this._getEstimatedTotalHeight();\n\n var shortestColumnSize = this._positionCache.shortestColumnSize;\n var measuredCellCount = this._positionCache.count;\n var startIndex = 0;\n var stopIndex;\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 }); // We need to measure additional cells for this layout\n\n\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 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 return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Masonry', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread({\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(\"div\", {\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 key: \"_checkInvalidateOnUpdate\",\n value: function _checkInvalidateOnUpdate() {\n if (typeof this._invalidateOnUpdateStartIndex === 'number') {\n var startIndex = this._invalidateOnUpdateStartIndex;\n var stopIndex = this._invalidateOnUpdateStopIndex;\n this._invalidateOnUpdateStartIndex = null;\n this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells\n\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 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 _this$props2 = this.props,\n cellCount = _this$props2.cellCount,\n cellMeasurerCache = _this$props2.cellMeasurerCache,\n width = _this$props2.width;\n var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));\n return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);\n }\n }, {\n key: \"_invokeOnScrollCallback\",\n value: function _invokeOnScrollCallback() {\n var _this$props3 = this.props,\n height = _this$props3.height,\n onScroll = _this$props3.onScroll;\n var scrollTop = this.state.scrollTop;\n\n if (this._onScrollMemoized !== scrollTop) {\n onScroll({\n clientHeight: height,\n scrollHeight: this._getEstimatedTotalHeight(),\n scrollTop: scrollTop\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 onCellsRendered({\n startIndex: this._startIndex,\n stopIndex: this._stopIndex\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 _this$props4 = this.props,\n cellMeasurerCache = _this$props4.cellMeasurerCache,\n cellPositioner = _this$props4.cellPositioner;\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), _defineProperty(_class, \"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 `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(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 \"scrollTop\": PropTypes.number\n}), _temp);\n\n_defineProperty(Masonry, \"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});\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};\npolyfill(Masonry);\nexport default Masonry;\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 };","import createCellPositioner from './createCellPositioner';\nimport Masonry from './Masonry';\nexport default Masonry;\nexport { createCellPositioner, Masonry };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { CellMeasurerCache } from '../CellMeasurer';\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCacheDecorator =\n/*#__PURE__*/\nfunction () {\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 _defineProperty(this, \"_cellMeasurerCache\", void 0);\n\n _defineProperty(this, \"_columnIndexOffset\", void 0);\n\n _defineProperty(this, \"_rowIndexOffset\", void 0);\n\n _defineProperty(this, \"columnWidth\", function (_ref) {\n var index = _ref.index;\n\n _this._cellMeasurerCache.columnWidth({\n index: index + _this._columnIndexOffset\n });\n });\n\n _defineProperty(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 === void 0 ? 0 : _params$columnIndexOf,\n _params$rowIndexOffse = params.rowIndexOffset,\n rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;\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 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 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 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 { CellMeasurerCacheDecorator as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport CellMeasurerCacheDecorator from './CellMeasurerCacheDecorator';\nimport Grid from '../Grid';\nvar SCROLLBAR_SIZE_BUFFER = 20;\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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MultiGrid, _React$PureComponent);\n\n function MultiGrid(props, context) {\n var _this;\n\n _classCallCheck(this, MultiGrid);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollLeft: 0,\n scrollTop: 0,\n scrollbarSize: 0,\n showHorizontalScrollbar: false,\n showVerticalScrollbar: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_bottomLeftGridRef\", function (ref) {\n _this._bottomLeftGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_bottomRightGridRef\", function (ref) {\n _this._bottomRightGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomLeftGrid\", function (_ref) {\n var rowIndex = _ref.rowIndex,\n rest = _objectWithoutProperties(_ref, [\"rowIndex\"]);\n\n var _this$props = _this.props,\n cellRenderer = _this$props.cellRenderer,\n fixedRowCount = _this$props.fixedRowCount,\n rowCount = _this$props.rowCount;\n\n if (rowIndex === rowCount - fixedRowCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread({}, rest.style, {\n height: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread({}, rest, {\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomRightGrid\", function (_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex,\n rest = _objectWithoutProperties(_ref2, [\"columnIndex\", \"rowIndex\"]);\n\n var _this$props2 = _this.props,\n cellRenderer = _this$props2.cellRenderer,\n fixedColumnCount = _this$props2.fixedColumnCount,\n fixedRowCount = _this$props2.fixedRowCount;\n return cellRenderer(_objectSpread({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererTopRightGrid\", function (_ref3) {\n var columnIndex = _ref3.columnIndex,\n rest = _objectWithoutProperties(_ref3, [\"columnIndex\"]);\n\n var _this$props3 = _this.props,\n cellRenderer = _this$props3.cellRenderer,\n columnCount = _this$props3.columnCount,\n fixedColumnCount = _this$props3.fixedColumnCount;\n\n if (columnIndex === columnCount - fixedColumnCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread({}, rest.style, {\n width: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this)\n }));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_columnWidthRightGrid\", function (_ref4) {\n var index = _ref4.index;\n var _this$props4 = _this.props,\n columnCount = _this$props4.columnCount,\n fixedColumnCount = _this$props4.fixedColumnCount,\n columnWidth = _this$props4.columnWidth;\n var _this$state = _this.state,\n scrollbarSize = _this$state.scrollbarSize,\n showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // 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({\n index: index + fixedColumnCount\n }) : columnWidth;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft,\n scrollTop = scrollInfo.scrollTop;\n\n _this.setState({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n var onScroll = _this.props.onScroll;\n\n if (onScroll) {\n onScroll(scrollInfo);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollbarPresenceChange\", function (_ref5) {\n var horizontal = _ref5.horizontal,\n size = _ref5.size,\n vertical = _ref5.vertical;\n var _this$state2 = _this.state,\n showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,\n showVerticalScrollbar = _this$state2.showVerticalScrollbar;\n\n if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {\n _this.setState({\n scrollbarSize: size,\n showHorizontalScrollbar: horizontal,\n showVerticalScrollbar: vertical\n });\n\n var onScrollbarPresenceChange = _this.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 _defineProperty(_assertThisInitialized(_this), \"_onScrollLeft\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft;\n\n _this._onScroll({\n scrollLeft: scrollLeft,\n scrollTop: _this.state.scrollTop\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollTop\", function (scrollInfo) {\n var scrollTop = scrollInfo.scrollTop;\n\n _this._onScroll({\n scrollTop: scrollTop,\n scrollLeft: _this.state.scrollLeft\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_rowHeightBottomGrid\", function (_ref6) {\n var index = _ref6.index;\n var _this$props5 = _this.props,\n fixedRowCount = _this$props5.fixedRowCount,\n rowCount = _this$props5.rowCount,\n rowHeight = _this$props5.rowHeight;\n var _this$state3 = _this.state,\n scrollbarSize = _this$state3.scrollbarSize,\n showVerticalScrollbar = _this$state3.showVerticalScrollbar; // 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({\n index: index + fixedRowCount\n }) : rowHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_topLeftGridRef\", function (ref) {\n _this._topLeftGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_topRightGridRef\", function (ref) {\n _this._topRightGrid = ref;\n });\n\n var deferredMeasurementCache = props.deferredMeasurementCache,\n _fixedColumnCount = props.fixedColumnCount,\n _fixedRowCount = props.fixedRowCount;\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 _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: _fixedRowCount\n }) : deferredMeasurementCache;\n _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: 0\n }) : deferredMeasurementCache;\n }\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 /** See Grid#invalidateCellSizeAfterRender */\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$columnIndex = _ref7.columnIndex,\n columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,\n _ref7$rowIndex = _ref7.rowIndex,\n rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$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 /** 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 /** See Grid#recomputeGridSize */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref8$columnIndex = _ref8.columnIndex,\n columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,\n _ref8$rowIndex = _ref8.rowIndex,\n rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;\n\n var _this$props6 = this.props,\n fixedColumnCount = _this$props6.fixedColumnCount,\n fixedRowCount = _this$props6.fixedRowCount;\n var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);\n var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);\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 this._leftGridWidth = null;\n this._topGridHeight = null;\n\n this._maybeCalculateCachedStyles(true);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n scrollLeft = _this$props7.scrollLeft,\n scrollTop = _this$props7.scrollTop;\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\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 _this$props8 = this.props,\n onScroll = _this$props8.onScroll,\n onSectionRendered = _this$props8.onSectionRendered,\n onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,\n scrollLeftProp = _this$props8.scrollLeft,\n scrollToColumn = _this$props8.scrollToColumn,\n scrollTopProp = _this$props8.scrollTop,\n scrollToRow = _this$props8.scrollToRow,\n rest = _objectWithoutProperties(_this$props8, [\"onScroll\", \"onSectionRendered\", \"onScrollbarPresenceChange\", \"scrollLeft\", \"scrollToColumn\", \"scrollTop\", \"scrollToRow\"]);\n\n this._prepareForRender(); // 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\n\n if (this.props.width === 0 || this.props.height === 0) {\n return null;\n } // scrollTop and scrollLeft props are explicitly filtered out and ignored\n\n\n var _this$state4 = this.state,\n scrollLeft = _this$state4.scrollLeft,\n scrollTop = _this$state4.scrollTop;\n return React.createElement(\"div\", {\n style: this._containerOuterStyle\n }, React.createElement(\"div\", {\n style: this._containerTopStyle\n }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n scrollLeft: scrollLeft\n }))), React.createElement(\"div\", {\n style: this._containerBottomStyle\n }, this._renderBottomLeftGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n scrollTop: scrollTop\n })), this._renderBottomRightGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n onSectionRendered: onSectionRendered,\n scrollLeft: scrollLeft,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow,\n scrollTop: scrollTop\n }))));\n }\n }, {\n key: \"_getBottomGridHeight\",\n value: function _getBottomGridHeight(props) {\n var height = props.height;\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 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({\n index: index\n });\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 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 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({\n index: index\n });\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 this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this.forceUpdate();\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 _this$props9 = this.props,\n columnWidth = _this$props9.columnWidth,\n enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,\n enableFixedRowScroll = _this$props9.enableFixedRowScroll,\n height = _this$props9.height,\n fixedColumnCount = _this$props9.fixedColumnCount,\n fixedRowCount = _this$props9.fixedRowCount,\n rowHeight = _this$props9.rowHeight,\n style = _this$props9.style,\n styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,\n styleBottomRightGrid = _this$props9.styleBottomRightGrid,\n styleTopLeftGrid = _this$props9.styleTopLeftGrid,\n styleTopRightGrid = _this$props9.styleTopRightGrid,\n width = _this$props9.width;\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 = _objectSpread({\n height: height,\n overflow: 'visible',\n // 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 this._containerBottomStyle = {\n height: height - this._getTopGridHeight(this.props),\n overflow: 'visible',\n // Let :focus outline show through\n position: 'relative',\n width: width\n };\n }\n\n if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {\n this._bottomLeftGridStyle = _objectSpread({\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 = _objectSpread({\n left: this._getLeftGridWidth(this.props),\n position: 'absolute'\n }, styleBottomRightGrid);\n }\n\n if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {\n this._topLeftGridStyle = _objectSpread({\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 = _objectSpread({\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 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(\"div\", {\n className: \"BottomLeftGrid_ScrollWrapper\",\n style: _objectSpread({}, 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 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 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 _this$state5 = this.state,\n showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,\n scrollbarSize = _this$state5.scrollbarSize;\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 = _objectSpread({}, 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(\"div\", {\n className: \"TopRightGrid_ScrollWrapper\",\n style: _objectSpread({}, 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\n_defineProperty(MultiGrid, \"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\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} : {};\npolyfill(MultiGrid);\nexport default MultiGrid;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\n\nvar ScrollSync =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ScrollSync, _React$PureComponent);\n\n function ScrollSync(props, context) {\n var _this;\n\n _classCallCheck(this, ScrollSync);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollSync).call(this, props, context));\n _this.state = {\n clientHeight: 0,\n clientWidth: 0,\n scrollHeight: 0,\n scrollLeft: 0,\n scrollTop: 0,\n scrollWidth: 0\n };\n _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ScrollSync, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var _this$state = this.state,\n clientHeight = _this$state.clientHeight,\n clientWidth = _this$state.clientWidth,\n scrollHeight = _this$state.scrollHeight,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop,\n scrollWidth = _this$state.scrollWidth;\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 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 { ScrollSync as default };\nScrollSync.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: PropTypes.func.isRequired\n} : {};","import * as React from 'react';\nexport default function defaultHeaderRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n style = _ref.style;\n return React.createElement(\"div\", {\n className: className,\n role: \"row\",\n style: style\n }, columns);\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};\nexport default SortDirection;","import clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport SortDirection from './SortDirection';\n/**\n * Displayed beside a header to indicate that a Table is currently sorted by this column.\n */\n\nexport default function SortIndicator(_ref) {\n var sortDirection = _ref.sortDirection;\n var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {\n 'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n });\n return React.createElement(\"svg\", {\n className: classNames,\n width: 18,\n height: 18,\n viewBox: \"0 0 24 24\"\n }, sortDirection === SortDirection.ASC ? React.createElement(\"path\", {\n d: \"M7 14l5-5 5 5z\"\n }) : React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n }), React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\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 * 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 var showSortIndicator = sortBy === dataKey;\n var children = [React.createElement(\"span\", {\n className: \"ReactVirtualized__Table__headerTruncatedText\",\n key: \"label\",\n title: typeof label === 'string' ? label : null\n }, label)];\n\n if (showSortIndicator) {\n children.push(React.createElement(SortIndicator, {\n key: \"SortIndicator\",\n sortDirection: sortDirection\n }));\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 * 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 var a11yProps = {\n 'aria-rowindex': index + 1\n };\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({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowDoubleClick) {\n a11yProps.onDoubleClick = function (event) {\n return onRowDoubleClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowMouseOut) {\n a11yProps.onMouseOut = function (event) {\n return onRowMouseOut({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowMouseOver) {\n a11yProps.onMouseOver = function (event) {\n return onRowMouseOver({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowRightClick) {\n a11yProps.onContextMenu = function (event) {\n return onRowRightClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n }\n\n return React.createElement(\"div\", _extends({}, a11yProps, {\n className: className,\n key: key,\n role: \"row\",\n style: style\n }), columns);\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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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 * Describes the header and cell contents of a table column.\n */\n\nvar Column =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Column, _React$Component);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));\n }\n\n return Column;\n}(React.Component);\n\n_defineProperty(Column, \"defaultProps\", {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n defaultSortDirection: SortDirection.ASC,\n flexGrow: 0,\n flexShrink: 1,\n headerRenderer: defaultHeaderRenderer,\n style: {}\n});\n\nexport { Column as default };\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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport Column from './Column';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport defaultRowRenderer from './defaultRowRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer';\nimport SortDirection from './SortDirection';\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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Table, _React$PureComponent);\n\n function Table(props) {\n var _this;\n\n _classCallCheck(this, Table);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props));\n _this.state = {\n scrollbarWidth: 0\n };\n _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this));\n _this._createRow = _this._createRow.bind(_assertThisInitialized(_this));\n _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this));\n _this._setRef = _this._setRef.bind(_assertThisInitialized(_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 /** 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 _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n return scrollTop;\n }\n\n return 0;\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 /** See Grid#measureAllCells */\n\n }, {\n key: \"measureAllRows\",\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\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 === void 0 ? 0 : _ref3$columnIndex,\n _ref3$rowIndex = _ref3.rowIndex,\n rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\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 /** 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({\n 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: \"getScrollbarWidth\",\n value: function getScrollbarWidth() {\n if (this.Grid) {\n var _Grid = findDOMNode(this.Grid);\n\n var clientWidth = _Grid.clientWidth || 0;\n var offsetWidth = _Grid.offsetWidth || 0;\n return offsetWidth - clientWidth;\n }\n\n return 0;\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 _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n disableHeader = _this$props.disableHeader,\n gridClassName = _this$props.gridClassName,\n gridStyle = _this$props.gridStyle,\n headerHeight = _this$props.headerHeight,\n headerRowRenderer = _this$props.headerRowRenderer,\n height = _this$props.height,\n id = _this$props.id,\n noRowsRenderer = _this$props.noRowsRenderer,\n rowClassName = _this$props.rowClassName,\n rowStyle = _this$props.rowStyle,\n scrollToIndex = _this$props.scrollToIndex,\n style = _this$props.style,\n width = _this$props.width;\n var scrollbarWidth = this.state.scrollbarWidth;\n var availableRowsHeight = disableHeader ? height : height - headerHeight;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: -1\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: -1\n }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up\n\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] = _objectSpread({\n overflow: 'hidden'\n }, flexStyles);\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\n return React.createElement(\"div\", {\n \"aria-label\": this.props['aria-label'],\n \"aria-labelledby\": this.props['aria-labelledby'],\n \"aria-colcount\": React.Children.toArray(children).length,\n \"aria-rowcount\": this.props.rowCount,\n className: clsx('ReactVirtualized__Table', className),\n id: id,\n role: \"grid\",\n style: style\n }, !disableHeader && headerRowRenderer({\n className: clsx('ReactVirtualized__Table__headerRow', rowClass),\n columns: this._getHeaderColumns(),\n style: _objectSpread({\n height: headerHeight,\n overflow: 'hidden',\n paddingRight: scrollbarWidth,\n width: width\n }, rowStyleObject)\n }), React.createElement(Grid, _extends({}, this.props, {\n \"aria-readonly\": null,\n autoContainerWidth: true,\n className: clsx('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: _objectSpread({}, gridStyle, {\n overflowX: 'hidden'\n })\n })));\n }\n }, {\n key: \"_createColumn\",\n value: function _createColumn(_ref4) {\n var column = _ref4.column,\n columnIndex = _ref4.columnIndex,\n isScrolling = _ref4.isScrolling,\n parent = _ref4.parent,\n rowData = _ref4.rowData,\n rowIndex = _ref4.rowIndex;\n var onColumnClick = this.props.onColumnClick;\n var _column$props = column.props,\n cellDataGetter = _column$props.cellDataGetter,\n cellRenderer = _column$props.cellRenderer,\n className = _column$props.className,\n columnData = _column$props.columnData,\n dataKey = _column$props.dataKey,\n id = _column$props.id;\n var cellData = cellDataGetter({\n columnData: columnData,\n dataKey: dataKey,\n rowData: rowData\n });\n var renderedCell = cellRenderer({\n cellData: cellData,\n columnData: columnData,\n columnIndex: columnIndex,\n dataKey: dataKey,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: rowIndex\n });\n\n var onClick = function onClick(event) {\n onColumnClick && onColumnClick({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n\n var style = this._cachedColumnStyles[columnIndex];\n var title = typeof renderedCell === 'string' ? renderedCell : null; // 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\n return React.createElement(\"div\", {\n \"aria-colindex\": columnIndex + 1,\n \"aria-describedby\": id,\n className: clsx('ReactVirtualized__Table__rowColumn', className),\n key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\n onClick: onClick,\n role: \"gridcell\",\n style: style,\n title: title\n }, renderedCell);\n }\n }, {\n key: \"_createHeader\",\n value: function _createHeader(_ref5) {\n var column = _ref5.column,\n index = _ref5.index;\n var _this$props2 = this.props,\n headerClassName = _this$props2.headerClassName,\n headerStyle = _this$props2.headerStyle,\n onHeaderClick = _this$props2.onHeaderClick,\n sort = _this$props2.sort,\n sortBy = _this$props2.sortBy,\n sortDirection = _this$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 var sortEnabled = !disableSort && sort;\n var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {\n ReactVirtualized__Table__sortableHeaderColumn: sortEnabled\n });\n\n var style = this._getFlexStyleForColumn(column, _objectSpread({}, 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 var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;\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; // If this is the firstTime sort of this column, use the column default sort order.\n // Otherwise, invert the direction of the sort.\n\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({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n\n var onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick(event);\n }\n };\n\n headerAriaLabel = column.props['aria-label'] || label || dataKey;\n headerAriaSort = 'none';\n headerTabIndex = 0;\n headerOnClick = onClick;\n headerOnKeyDown = onKeyDown;\n }\n\n if (sortBy === dataKey) {\n headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';\n } // 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\n\n return React.createElement(\"div\", {\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 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 _this$props3 = this.props,\n children = _this$props3.children,\n onRowClick = _this$props3.onRowClick,\n onRowDoubleClick = _this$props3.onRowDoubleClick,\n onRowRightClick = _this$props3.onRowRightClick,\n onRowMouseOver = _this$props3.onRowMouseOver,\n onRowMouseOut = _this$props3.onRowMouseOut,\n rowClassName = _this$props3.rowClassName,\n rowGetter = _this$props3.rowGetter,\n rowRenderer = _this$props3.rowRenderer,\n rowStyle = _this$props3.rowStyle;\n var scrollbarWidth = this.state.scrollbarWidth;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: index\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: index\n }) : rowStyle;\n var rowData = rowGetter({\n 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 var className = clsx('ReactVirtualized__Table__row', rowClass);\n\n var flattenedStyle = _objectSpread({}, style, {\n height: this._getRowHeight(index),\n overflow: 'hidden',\n paddingRight: scrollbarWidth\n }, rowStyleObject);\n\n return rowRenderer({\n className: className,\n columns: columns,\n index: index,\n isScrolling: isScrolling,\n key: key,\n onRowClick: onRowClick,\n onRowDoubleClick: onRowDoubleClick,\n onRowRightClick: onRowRightClick,\n onRowMouseOver: onRowMouseOver,\n onRowMouseOut: onRowMouseOut,\n rowData: rowData,\n style: flattenedStyle\n });\n }\n /**\n * 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 var flexValue = \"\".concat(column.props.flexGrow, \" \").concat(column.props.flexShrink, \" \").concat(column.props.width, \"px\");\n\n var style = _objectSpread({}, 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 _this$props4 = this.props,\n children = _this$props4.children,\n disableHeader = _this$props4.disableHeader;\n var items = disableHeader ? [] : React.Children.toArray(children);\n return items.map(function (column, index) {\n return _this4._createHeader({\n column: column,\n index: index\n });\n });\n }\n }, {\n key: \"_getRowHeight\",\n value: function _getRowHeight(rowIndex) {\n var rowHeight = this.props.rowHeight;\n return typeof rowHeight === 'function' ? rowHeight({\n index: rowIndex\n }) : 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 onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\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 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 var scrollbarWidth = this.getScrollbarWidth();\n this.setState({\n scrollbarWidth: scrollbarWidth\n });\n }\n }]);\n\n return Table;\n}(React.PureComponent);\n\n_defineProperty(Table, \"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});\n\nexport { Table as default };\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** This is just set on the grid top element. */\n 'aria-label': PropTypes.string,\n\n /** This is just set on the grid top element. */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /** One or more Columns describing the data displayed in this row */\n children: function children(props) {\n var children = React.Children.toArray(props.children);\n\n for (var i = 0; i < children.length; i++) {\n var childType = children[i].type;\n\n if (childType !== Column && !(childType.prototype instanceof Column)) {\n return new Error('Table only accepts children of type Column');\n }\n }\n },\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Disable rendering the header at all */\n disableHeader: PropTypes.bool,\n\n /**\n * Used to estimate the total height of a Table before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: PropTypes.number.isRequired,\n\n /** Optional custom CSS class name to attach to inner Grid element. */\n gridClassName: PropTypes.string,\n\n /** Optional inline style to attach to inner Grid element. */\n gridStyle: PropTypes.object,\n\n /** Optional CSS class to apply to all column headers */\n headerClassName: PropTypes.string,\n\n /** Fixed height of header row */\n headerHeight: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: any[],\n * style: any\n * }): PropTypes.node\n */\n headerRowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table header columns. */\n headerStyle: PropTypes.object,\n\n /** Fixed/available height for out DOM element */\n height: PropTypes.number.isRequired,\n\n /** Optional id */\n id: PropTypes.string,\n\n /** Optional renderer to be used in place of table body rows when rowCount is 0 */\n noRowsRenderer: PropTypes.func,\n\n /**\n * Optional callback when a column is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onColumnClick: PropTypes.func,\n\n /**\n * Optional callback when a column's header is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onHeaderClick: PropTypes.func,\n\n /**\n * Callback invoked when a user clicks on a table row.\n * ({ index: number }): void\n */\n onRowClick: PropTypes.func,\n\n /**\n * Callback invoked when a user double-clicks on a table row.\n * ({ index: number }): void\n */\n onRowDoubleClick: PropTypes.func,\n\n /**\n * Callback invoked when the mouse leaves a table row.\n * ({ index: number }): void\n */\n onRowMouseOut: PropTypes.func,\n\n /**\n * Callback invoked when a user moves the mouse over a table row.\n * ({ index: number }): void\n */\n onRowMouseOver: PropTypes.func,\n\n /**\n * Callback invoked when a user right-clicks on a table row.\n * ({ index: number }): void\n */\n onRowRightClick: PropTypes.func,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /** See Grid#overscanIndicesGetter */\n overscanIndicesGetter: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowCount: PropTypes.number.isRequired,\n\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: ({ index: number }): string\n */\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Callback responsible for returning a data row given an index.\n * ({ index: number }): any\n */\n rowGetter: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * ({ index: number }): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Number of rows in table. */\n rowCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: Array,\n * index: number,\n * isScrolling: boolean,\n * onRowClick: ?Function,\n * onRowDoubleClick: ?Function,\n * onRowMouseOver: ?Function,\n * onRowMouseOut: ?Function,\n * rowData: any,\n * style: any\n * }): PropTypes.node\n */\n rowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table rows. */\n rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,\n\n /** See Grid#scrollToAlignment */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number.isRequired,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Sort function to be called if a sortable header is clicked.\n * Should implement the following interface: ({\n * defaultSortDirection: 'ASC' | 'DESC',\n * event: MouseEvent,\n * sortBy: string,\n * sortDirection: SortDirection\n * }): void\n */\n sort: PropTypes.func,\n\n /** Table data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: PropTypes.string,\n\n /** Table data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** Optional inline style */\n style: PropTypes.object,\n\n /** Tab index for focus */\n tabIndex: PropTypes.number,\n\n /** Width of list */\n width: PropTypes.number.isRequired\n} : {};\nimport { bpfrpt_proptype_CellPosition } from \"../Grid\";","/**\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 * 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 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';\nexport default Table;\nexport { createMultiSort, defaultCellDataGetter, defaultCellRenderer, defaultHeaderRowRenderer, defaultHeaderRenderer, defaultRowRenderer, Column, SortDirection, SortIndicator, Table };","import { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';\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 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 document.body.style.pointerEvents = 'none';\n }\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\n mountedInstances.push(component);\n}\nexport function unregisterScrollListener(component, element) {\n mountedInstances = mountedInstances.filter(function (instance) {\n return instance !== component;\n });\n\n if (!mountedInstances.length) {\n element.removeEventListener('scroll', onScrollWindow);\n\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n enablePointerEventsIfDisabled();\n }\n }\n}\n","/**\n * Gets the dimensions of the element, accounting for API differences between\n * `window` and other DOM elements.\n */\n// TODO Move this into WindowScroller and import from there\nvar isWindow = function isWindow(element) {\n return element === window;\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 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 * 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 */\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\n var _elementRect = getBoundingBox(element);\n\n var _containerRect = getBoundingBox(container);\n\n return {\n top: _elementRect.top + scrollOffset.top - _containerRect.top,\n left: _elementRect.left + scrollOffset.left - _containerRect.left\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 */\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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\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 = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(WindowScroller, _React$PureComponent);\n\n function WindowScroller() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WindowScroller);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_window\", getWindow());\n\n _defineProperty(_assertThisInitialized(_this), \"_isMounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionFromTop\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionFromLeft\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('WindowScroller registerChild expects to be passed Element or null');\n }\n\n _this._child = element;\n\n _this.updatePosition();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onChildScroll\", function (_ref) {\n var scrollTop = _ref.scrollTop;\n\n if (_this.state.scrollTop === scrollTop) {\n return;\n }\n\n var scrollElement = _this.props.scrollElement;\n\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 });\n\n _defineProperty(_assertThisInitialized(_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 });\n\n _defineProperty(_assertThisInitialized(_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 });\n\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n _this.updatePosition();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"__handleWindowScrollEvent\", function () {\n if (!_this._isMounted) {\n return;\n }\n\n var onScroll = _this.props.onScroll;\n var scrollElement = _this.props.scrollElement;\n\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 });\n\n _defineProperty(_assertThisInitialized(_this), \"__resetIsScrolling\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n\n return _this;\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 _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width;\n var thisNode = this._child || ReactDOM.findDOMNode(this);\n\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\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 this._detectElementResize = createDetectElementResize();\n this.updatePosition(scrollElement);\n\n if (scrollElement) {\n registerScrollListener(this, scrollElement);\n\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 if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {\n this.updatePosition(scrollElement);\n unregisterScrollListener(this, prevScrollElement);\n registerScrollListener(this, scrollElement);\n\n this._unregisterResizeListener(prevScrollElement);\n\n this._registerResizeListener(scrollElement);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var scrollElement = this.props.scrollElement;\n\n if (scrollElement) {\n unregisterScrollListener(this, scrollElement);\n\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 _this$state2 = this.state,\n isScrolling = _this$state2.isScrolling,\n scrollTop = _this$state2.scrollTop,\n scrollLeft = _this$state2.scrollLeft,\n height = _this$state2.height,\n width = _this$state2.width;\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\n return WindowScroller;\n}(React.PureComponent), _defineProperty(_class, \"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 /** Callback to be invoked on-resize: ({ height, width }) */\n \"onResize\": PropTypes.func.isRequired,\n\n /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n \"onScroll\": PropTypes.func.isRequired,\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 /** Height used for server-side rendering */\n \"serverHeight\": PropTypes.number.isRequired,\n\n /** Width used for server-side rendering */\n \"serverWidth\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(WindowScroller, \"defaultProps\", {\n onResize: function onResize() {},\n onScroll: function onScroll() {},\n scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,\n scrollElement: getWindow(),\n serverHeight: 0,\n serverWidth: 0\n});\n\nexport { WindowScroller as default };\nimport PropTypes from \"prop-types\";","import WindowScroller, { IS_SCROLLING_TIMEOUT } from './WindowScroller';\nexport default WindowScroller;\nexport { WindowScroller, IS_SCROLLING_TIMEOUT };","import React, { useEffect, useRef } from \"react\";\r\nimport { useAppSelector } from \"../../hooks\";\r\nimport { AutoSizer } from \"react-virtualized\";\r\n\r\ninterface Props {}\r\n\r\nlet lastIndex: number = 0;\r\nlet lastX: number | undefined = undefined;\r\nlet lastY: number | undefined = undefined;\r\n\r\nconst WaveformView: React.FunctionComponent = (props: Props) => {\r\n const canvasRef = useRef(null);\r\n const wholeWaveformData = useAppSelector(\r\n (state) => state.testing.wholeWaveformData\r\n );\r\n\r\n useEffect(() => {\r\n if (!wholeWaveformData) {\r\n return;\r\n }\r\n const canvas = canvasRef.current!!;\r\n const context = canvas.getContext(\"2d\")!!;\r\n context.imageSmoothingEnabled = true;\r\n // context.fillStyle = \"#000000\";\r\n // context.fillRect(0, 0, context.canvas.width, context.canvas.height);\r\n\r\n context.lineWidth = 1;\r\n context.strokeStyle = \"#000000\";\r\n\r\n context.beginPath();\r\n\r\n let sliceWidth = (context.canvas.width * 1.0) / 1100000;\r\n let x = (lastIndex || 0) * sliceWidth;\r\n context.moveTo(lastX || 0, lastY || 128);\r\n for (; lastIndex < wholeWaveformData.length; lastIndex++) {\r\n var v = wholeWaveformData[lastIndex] / 128.0;\r\n var y = (v * context.canvas.height) / 2;\r\n\r\n if (lastIndex === 0) {\r\n context.moveTo(x, y);\r\n } else {\r\n context.lineTo(x, y);\r\n }\r\n\r\n x += sliceWidth;\r\n }\r\n\r\n context.stroke();\r\n }, [wholeWaveformData]);\r\n\r\n return (\r\n \r\n {({ height, width }) => (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst WaveformView2: React.FunctionComponent = (props: Props) => {\r\n const canvasRef = useRef(null);\r\n const waveformData = useAppSelector((state) => state.testing.waveformData);\r\n const wholeWaveformData = useAppSelector(\r\n (state) => state.testing.wholeWaveformData\r\n );\r\n\r\n useEffect(() => {\r\n if (!waveformData || !wholeWaveformData) {\r\n return;\r\n }\r\n const canvas = canvasRef.current!!;\r\n const context = canvas.getContext(\"2d\")!!;\r\n context.imageSmoothingEnabled = true;\r\n context.fillStyle = \"#000000\";\r\n context.fillRect(0, 0, context.canvas.width, context.canvas.height);\r\n\r\n context.lineWidth = 1;\r\n context.strokeStyle = \"#ffffff\";\r\n context.globalAlpha = 1;\r\n context.beginPath();\r\n\r\n var sliceWidth = (context.canvas.width * 1.0) / (1500000 / 500);\r\n var x = 0;\r\n\r\n for (var i = 0; i < waveformData.length; i++) {\r\n var v = waveformData[i] / 128.0;\r\n var y = (v * context.canvas.height) / 2;\r\n\r\n if (i === 0) {\r\n context.moveTo(x, y);\r\n } else {\r\n context.lineTo(x, y);\r\n }\r\n\r\n x += sliceWidth;\r\n }\r\n\r\n context.lineTo(x, canvas.height / 2);\r\n context.lineTo(canvas.width, canvas.height / 2);\r\n context.stroke();\r\n\r\n context.strokeStyle = \"#ff0000\";\r\n context.globalAlpha = 0.5;\r\n context.beginPath();\r\n\r\n var sliceWidth = (context.canvas.width * 1.0) / (1500000 / 500);\r\n var x = 0;\r\n\r\n for (var i = 0; i < wholeWaveformData.length; i++) {\r\n var v = wholeWaveformData[i] / 128.0;\r\n var y = (v * context.canvas.height) / 2;\r\n\r\n if (i === 0) {\r\n context.moveTo(x, y);\r\n } else {\r\n context.lineTo(x, y);\r\n }\r\n\r\n x += sliceWidth;\r\n }\r\n context.lineTo(x, canvas.height / 2);\r\n context.lineTo(canvas.width, canvas.height / 2);\r\n context.stroke();\r\n }, [waveformData, wholeWaveformData]);\r\n\r\n return (\r\n \r\n {({ height, width }) => (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default WaveformView2;\r\n","import React, { useEffect } from \"react\";\nimport { NavigateFunction, useNavigate } from \"react-router-dom\";\nimport { Subscription } from \"rxjs\";\nimport { useAppDispatch, useAppSelector } from \"../../hooks\";\nimport { startTest } from \"../../reducers/Testing\";\nimport { withNavigation } from \"../../RouterHoc\";\nimport { Signal } from \"../../Signal\";\nimport { ReceivedRtcpStats } from \"../../Stats\";\nimport { TestEngine, TestEngineState } from \"../../TestEngine\";\nimport WaveformView from \"./WaveformView\";\n\ninterface Props {}\n\nconst TestingPage: React.FunctionComponent = (props: Props) => {\n const dispatch = useAppDispatch();\n const engineState = useAppSelector((state) => state.testing.engineState);\n const currentStats = useAppSelector((state) => state.testing.currentStats);\n const iceCandidates = currentStats?.ConnParams;\n const navigate = useNavigate();\n useEffect(() => {\n if (engineState == undefined) {\n navigate(\"/\");\n }\n }, []);\n useEffect(() => {\n if (\n engineState == TestEngineState.ENDED ||\n engineState == TestEngineState.ERROR\n ) {\n navigate(\"/result\");\n }\n }, [engineState]);\n return (\n
\n
Engine State: {engineState}
\n
Jitter: {currentStats?.JitterInMillis || 0}
\n
Packets Lost: {currentStats?.PacketLossRatePercent || 0}%
\n
\n User ICE: {iceCandidates?.SelectedICECandidateRemote || \"Unknown\"}\n
\n
\n Server ICE: {iceCandidates?.SelectedICECandidateLocal || \"Unknown\"}\n
\n
\n \n
\n
\n );\n};\n\nexport default TestingPage;\n","import { Link, Route, Routes } from \"react-router-dom\";\nimport \"./App.css\";\nimport HomePage from \"./pages/home/HomePage\";\nimport ResultPage from \"./pages/result/ResultPage\";\nimport TestingPage from \"./pages/testing/TestingPage\";\n\nfunction App() {\n return (\n
\n
\n VOICETEST.net\n
\n \n } />\n } />\n } />\n \n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n","type SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => number;\ntype ClearIntervalFunction = (handle: number) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(...args) {\n const { delegate } = intervalProvider;\n return (delegate?.setInterval || setInterval)(...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\n\nexport class AsyncAction extends Action {\n public id: any;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: any, delay: number = 0): any {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id: any, delay: number | null = 0): any {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n intervalProvider.clearInterval(id);\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n","import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: any = undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure teardown.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure teardown.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n}\n","export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n","import { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { ObservableInput, ReadableStreamLike } from '../types';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { Subscriber } from '../Subscriber';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\nexport function innerFrom(input: ObservableInput): Observable {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n\n throw createInvalidObservableTypeError(input);\n}\n\n/**\n * Creates an RxJS Observable from an object that implements `Symbol.observable`.\n * @param obj An object that properly implements `Symbol.observable`.\n */\nexport function fromInteropObservable(obj: any) {\n return new Observable((subscriber: Subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\n\n/**\n * Synchronously emits the values of an array like and completes.\n * This is exported because there are creation functions and operators that need to\n * make direct use of the same logic, and there's no reason to make them run through\n * `from` conditionals because we *know* they're dealing with an array.\n * @param array The array to emit values from\n */\nexport function fromArrayLike(array: ArrayLike) {\n return new Observable((subscriber: Subscriber) => {\n // Loop over the array and emit each value. Note two things here:\n // 1. We're making sure that the subscriber is not closed on each loop.\n // This is so we don't continue looping over a very large array after\n // something like a `take`, `takeWhile`, or other synchronous unsubscription\n // has already unsubscribed.\n // 2. In this form, reentrant code can alter that array we're looping over.\n // This is a known issue, but considered an edge case. The alternative would\n // be to copy the array before executing the loop, but this has\n // performance implications.\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\n\nexport function fromPromise(promise: PromiseLike) {\n return new Observable((subscriber: Subscriber) => {\n promise\n .then(\n (value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n },\n (err: any) => subscriber.error(err)\n )\n .then(null, reportUnhandledError);\n });\n}\n\nexport function fromIterable(iterable: Iterable) {\n return new Observable((subscriber: Subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\n\nexport function fromAsyncIterable(asyncIterable: AsyncIterable) {\n return new Observable((subscriber: Subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\n\nexport function fromReadableStreamLike(readableStream: ReadableStreamLike) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\n\nasync function process(asyncIterable: AsyncIterable, subscriber: Subscriber) {\n for await (const value of asyncIterable) {\n subscriber.next(value);\n // A side-effect may have closed our subscriber,\n // check before the next iteration.\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n}\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n","export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');","import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n","import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n","import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isPlainObject(action) &&\r\n typeof (action as any).type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior, \r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n","import {\r\n Action,\r\n createAction,\r\n createAsyncThunk,\r\n createSlice,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\nimport { ReceivedRtcpStats } from \"../Stats\";\r\nimport { TestEngineState } from \"../TestEngine\";\r\n\r\ninterface Stats {}\r\n\r\ninterface TestingState {\r\n engineState?: TestEngineState;\r\n stats: ReceivedRtcpStats[];\r\n currentStats?: ReceivedRtcpStats;\r\n waveformData?: number[];\r\n wholeWaveformData?: number[];\r\n}\r\n\r\nconst initialState: TestingState = {\r\n stats: [],\r\n};\r\n\r\n// const startTest = createAsyncThunk(\r\n// \"testing/start\",\r\n// async (userId, thunkAPI) => {\r\n// // const response = await userAPI.fetchById(userId);\r\n// return response.data;\r\n// }\r\n// );\r\n\r\nexport const startTest = createAction(\"testing/start\");\r\n\r\nconst slice = createSlice({\r\n name: \"testing\",\r\n initialState,\r\n reducers: {\r\n setEngineState(state, action: PayloadAction) {\r\n state.engineState = action.payload;\r\n },\r\n reset(state, action: Action) {\r\n state.engineState = undefined;\r\n state.currentStats = undefined;\r\n state.waveformData = undefined;\r\n state.stats = [];\r\n },\r\n addStats(state, action: PayloadAction) {\r\n state.stats = [...state.stats, action.payload];\r\n state.currentStats = action.payload;\r\n },\r\n setWaveformData(state, action: PayloadAction) {\r\n state.waveformData = action.payload;\r\n },\r\n setWholeWaveformData(state, action: PayloadAction) {\r\n state.wholeWaveformData = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setEngineState,\r\n addStats,\r\n reset,\r\n setWaveformData,\r\n setWholeWaveformData,\r\n} = slice.actions;\r\nexport default slice.reducer;\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator