{"version":3,"file":"static/js/main.f83df49b.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/config.js","../node_modules/decode-uri-component/index.js","../node_modules/filter-obj/index.js","../node_modules/fixed-data-table-2/internal/ColumnResizerLine.js","../node_modules/fixed-data-table-2/internal/FixedDataTable.js","../node_modules/fixed-data-table-2/internal/FixedDataTableBufferedRows.js","../node_modules/fixed-data-table-2/internal/FixedDataTableCell.js","../node_modules/fixed-data-table-2/internal/FixedDataTableCellDefault.js","../node_modules/fixed-data-table-2/internal/FixedDataTableCellDefaultDeprecated.js","../node_modules/fixed-data-table-2/internal/FixedDataTableCellGroup.js","../node_modules/fixed-data-table-2/internal/FixedDataTableColumn.js","../node_modules/fixed-data-table-2/internal/FixedDataTableColumnGroup.js","../node_modules/fixed-data-table-2/internal/FixedDataTableColumnReorderHandle.js","../node_modules/fixed-data-table-2/internal/FixedDataTableContainer.js","../node_modules/fixed-data-table-2/internal/FixedDataTableEventHelper.js","../node_modules/fixed-data-table-2/internal/FixedDataTableRoot.js","../node_modules/fixed-data-table-2/internal/FixedDataTableRow.js","../node_modules/fixed-data-table-2/internal/FixedDataTableStore.js","../node_modules/fixed-data-table-2/internal/FixedDataTableTranslateDOMPosition.js","../node_modules/fixed-data-table-2/internal/ReactTouchHandler.js","../node_modules/fixed-data-table-2/internal/actions/ActionTypes.js","../node_modules/fixed-data-table-2/internal/actions/columnActions.js","../node_modules/fixed-data-table-2/internal/actions/scrollActions.js","../node_modules/fixed-data-table-2/internal/helper/convertColumnElementsToData.js","../node_modules/fixed-data-table-2/internal/helper/shallowEqualSelector.js","../node_modules/fixed-data-table-2/internal/helper/widthHelper.js","../node_modules/fixed-data-table-2/internal/plugins/ScrollContainer.js","../node_modules/fixed-data-table-2/internal/plugins/Scrollbar.js","../node_modules/fixed-data-table-2/internal/reducers/columnStateHelper.js","../node_modules/fixed-data-table-2/internal/reducers/computeRenderedRows.js","../node_modules/fixed-data-table-2/internal/reducers/index.js","../node_modules/fixed-data-table-2/internal/reducers/scrollAnchor.js","../node_modules/fixed-data-table-2/internal/reducers/updateRowHeight.js","../node_modules/fixed-data-table-2/internal/selectors/ariaAttributes.js","../node_modules/fixed-data-table-2/internal/selectors/columnTemplates.js","../node_modules/fixed-data-table-2/internal/selectors/columnWidths.js","../node_modules/fixed-data-table-2/internal/selectors/roughHeights.js","../node_modules/fixed-data-table-2/internal/selectors/scrollbarsVisible.js","../node_modules/fixed-data-table-2/internal/selectors/tableHeights.js","../node_modules/fixed-data-table-2/internal/stubs/UserAgent_DEPRECATED.js","../node_modules/fixed-data-table-2/internal/stubs/cssVar.js","../node_modules/fixed-data-table-2/internal/stubs/invariant.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/ExecutionEnvironment.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/Keys.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/camelize.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/cancelAnimationFramePolyfill.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/clamp.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/debounceCore.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/emptyFunction.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/getVendorPrefixedName.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/globalThisPolyfill.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/joinClasses.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/nativeRequestAnimationFrame.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/requestAnimationFramePolyfill.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/core/shallowEqual.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/dom/BrowserSupportCore.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/dom/DOMMouseMoveTracker.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/dom/ReactWheelHandler.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/dom/normalizeWheel.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/dom/translateDOMPositionXY.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/react/renderers/dom/client/utils/isEventSupported.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/struct/Heap.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/struct/IntegerBufferSet.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/struct/PrefixIntervalTree.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/stubs/EventListener.js","../node_modules/fixed-data-table-2/internal/vendor_upstream/stubs/cx.js","../node_modules/fixed-data-table-2/main.js","../node_modules/invariant/browser.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClamp.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseInRange.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_basePick.js","../node_modules/lodash/_basePickBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseReduce.js","../node_modules/lodash/_baseSet.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_flatRest.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/clamp.js","../node_modules/lodash/constant.js","../node_modules/lodash/defaultTo.js","../node_modules/lodash/eq.js","../node_modules/lodash/flatten.js","../node_modules/lodash/forEach.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/inRange.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEmpty.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/map.js","../node_modules/lodash/memoize.js","../node_modules/lodash/pick.js","../node_modules/lodash/property.js","../node_modules/lodash/reduce.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/moment-timezone/index.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/moment/moment.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/query-string/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-reducer-utils/lib/index.js","../node_modules/react-reducer-utils/lib/thunk-reducer.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/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/reselect/es/defaultMemoize.js","../node_modules/reselect/es/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/split-on-first/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/uuid/dist/commonjs-browser/index.js","../node_modules/uuid/dist/commonjs-browser/md5.js","../node_modules/uuid/dist/commonjs-browser/native.js","../node_modules/uuid/dist/commonjs-browser/nil.js","../node_modules/uuid/dist/commonjs-browser/parse.js","../node_modules/uuid/dist/commonjs-browser/regex.js","../node_modules/uuid/dist/commonjs-browser/rng.js","../node_modules/uuid/dist/commonjs-browser/sha1.js","../node_modules/uuid/dist/commonjs-browser/stringify.js","../node_modules/uuid/dist/commonjs-browser/v1.js","../node_modules/uuid/dist/commonjs-browser/v3.js","../node_modules/uuid/dist/commonjs-browser/v35.js","../node_modules/uuid/dist/commonjs-browser/v4.js","../node_modules/uuid/dist/commonjs-browser/v5.js","../node_modules/uuid/dist/commonjs-browser/validate.js","../node_modules/uuid/dist/commonjs-browser/version.js","../node_modules/warning/warning.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../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/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","reportWebVitals.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/index.tsx","webpack://demo-pttbbs/./src/components/Page.module.css?097b","components/Empty.tsx","reducers/homePage.ts","webpack://demo-pttbbs/./src/components/Header.module.css?4e81","constants.tsx","components/Header.tsx","reducers/ServerUtils.ts","reducers/api.ts","reducers/header.ts","reducers/errors.ts","components/HomePage.tsx","components/errors.ts","../node_modules/react-use/esm/useEffectOnce.js","../node_modules/react-use/esm/useUnmount.js","../node_modules/react-use/esm/useRafState.js","../node_modules/react-use/esm/misc/util.js","../node_modules/react-use/esm/useWindowSize.js","reducers/utils.ts","reducers/hotBoardsPage.ts","webpack://demo-pttbbs/./src/components/Screen.module.css?71c1","webpack://demo-pttbbs/./src/components/cells/ContentRenderer.module.css?61c0","components/utils.ts","components/cells/LineCell.tsx","components/Screen.tsx","components/cells/RowHighlightedCell.tsx","components/cells/PlainText.tsx","components/cells/Idx.tsx","components/cells/Moderators.tsx","components/BoardList.tsx","webpack://demo-pttbbs/./src/components/FunctionBar.module.css?333e","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","components/FunctionBar.tsx","components/HotBoardsPage.tsx","../node_modules/react-use/esm/useEvent.js","../node_modules/react-use/esm/useKey.js","reducers/articlesPage.ts","components/cells/PostDate.tsx","components/cells/State.tsx","components/cells/CommNum.tsx","components/cells/Category.tsx","components/ArticleList.tsx","webpack://demo-pttbbs/./src/components/SearchBar.module.css?5525","assets/img/search_white_24dp.svg","assets/img/clear_white_24dp.svg","components/SearchBar.tsx","components/EmptyList.tsx","components/ArticlesPage.tsx","reducers/generalBoardsPage.ts","components/GeneralBoardsPage.tsx","reducers/userFavoritesPage.ts","components/UserFavoritesPage.tsx","reducers/articlePage.ts","components/cells/utils.ts","components/cells/Rune.tsx","components/cells/Runes.tsx","components/Article.tsx","../node_modules/react-widgets/esm/Icon.js","../node_modules/react-widgets/esm/Button.js","../node_modules/react-widgets/esm/CalendarButton.js","../node_modules/react-widgets/esm/CalendarHeader.js","../node_modules/date-arithmetic/index.js","../node_modules/react-widgets/esm/dates.js","../node_modules/dom-helpers/esm/matches.js","../node_modules/react-widgets/esm/useFocusManager.js","../node_modules/@restart/hooks/esm/useFocusManager.js","../node_modules/react-widgets/esm/CalendarView.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/react-widgets/esm/_.js","../node_modules/react-widgets/esm/Century.js","../node_modules/react-widgets/esm/Decade.js","../node_modules/react-widgets/esm/IntlLocalizer.js","../node_modules/react-widgets/esm/messages.js","../node_modules/react-widgets/esm/Localization.js","../node_modules/react-widgets/esm/Month.js","../node_modules/react-widgets/esm/SlideTransitionGroup.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/@restart/hooks/esm/useGlobalListener.js","../node_modules/react-widgets/esm/Widget.js","../node_modules/react-widgets/esm/Year.js","../node_modules/react-widgets/esm/useAutoFocus.js","../node_modules/react-widgets/esm/WidgetHelpers.js","../node_modules/react-widgets/esm/Calendar.js","../node_modules/react-widgets/esm/Input.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/react-widgets/esm/FocusListContext.js","../node_modules/react-widgets/esm/ListOption.js","../node_modules/react-widgets/esm/ListOptionGroup.js","../node_modules/react-widgets/esm/PropTypes.js","../node_modules/@restart/hooks/esm/useCustomEffect.js","../node_modules/@restart/hooks/esm/useUpdateImmediateEffect.js","../node_modules/@restart/hooks/esm/useStableMemo.js","../node_modules/@restart/hooks/esm/useImmediateUpdateEffect.js","../node_modules/@restart/hooks/esm/useMutationObserver.js","../node_modules/react-widgets/esm/List.js","../node_modules/dom-helpers/esm/isWindow.js","../node_modules/dom-helpers/esm/isDocument.js","../node_modules/dom-helpers/esm/getScrollAccessor.js","../node_modules/dom-helpers/esm/scrollLeft.js","../node_modules/dom-helpers/esm/scrollTop.js","../node_modules/dom-helpers/esm/height.js","../node_modules/dom-helpers/esm/offset.js","../node_modules/react-widgets/esm/SlideDownTransition.js","../node_modules/react-widgets/esm/Popup.js","../node_modules/react-widgets/esm/InputAddon.js","../node_modules/react-widgets/esm/WidgetPicker.js","../node_modules/react-widgets/esm/A11y.js","../node_modules/react-widgets/esm/Accessors.js","../node_modules/react-widgets/esm/Filter.js","../node_modules/react-widgets/esm/useDropdownToggle.js","../node_modules/react-widgets/esm/Combobox.js","../node_modules/react-widgets/esm/DatePickerInput.js","../node_modules/react-widgets/esm/DateTimePartInput.js","../node_modules/react-widgets/esm/TimeInput.js","../node_modules/react-widgets/esm/useTabTrap.js","../node_modules/react-widgets/esm/DatePicker.js","../node_modules/react-widgets/esm/AddToListOption.js","../node_modules/react-widgets/esm/DropdownListInput.js","../node_modules/react-widgets/esm/canShowCreate.js","../node_modules/react-widgets/esm/PickerCaret.js","../node_modules/react-widgets/esm/DropdownList.js","../node_modules/react-widgets/esm/Listbox.js","../node_modules/react-widgets/esm/MultiselectInput.js","../node_modules/react-widgets/esm/MultiselectTag.js","../node_modules/react-widgets/esm/MultiselectTagList.js","../node_modules/react-widgets/esm/Multiselect.js","../node_modules/dom-helpers/esm/closest.js","../node_modules/react-widgets/esm/NumberInput.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/react-widgets/esm/NumberPicker.js","components/cells/Recommend.tsx","webpack://demo-pttbbs/./src/components/InitConsts.module.css?6ac3","components/InitConsts.tsx","components/ArticlePage.tsx","webpack://demo-pttbbs/./src/components/NewArticlePage.module.css?7e16","reducers/newArticlePage.ts","components/cells/EditCell.tsx","components/cells/Edit.tsx","components/Editor.tsx","components/NewArticlePage.tsx","reducers/classBoardsPage.ts","components/ClassBoardsPage.tsx","reducers/manualsPage.ts","reducers/manualPage.ts","components/ManualPage.tsx","components/ManualList.tsx","components/ManualsPage.tsx","routes/All.tsx","all.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = {\n BRAND: 'DevPtt2',\n API_ROOT: 'https://api2.devptt.dev',\n CLIENT_ID: 'test_client_id',\n CLIENT_SECRET: 'test_client_secret',\n TERM_URL: 'https://term2.devptt.dev',\n LIST_LIMIT: 150,\n PTT_GUEST: 'guest',\n}\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clamp = _interopRequireDefault(require('././vendor_upstream/core/clamp'));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _DOMMouseMoveTracker = _interopRequireDefault(require('././vendor_upstream/dom/DOMMouseMoveTracker'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ColumnResizerLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ColumnResizerLine, _React$PureComponent);\n\n var _super = _createSuper(ColumnResizerLine);\n\n function ColumnResizerLine() {\n var _this;\n\n _classCallCheck(this, ColumnResizerLine);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n width: 0,\n cursorDelta: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n if (_this.props.isRTL) {\n deltaX = -deltaX;\n }\n\n var newWidth = _this.state.cursorDelta + deltaX;\n var newColumnWidth = (0, _clamp[\"default\"])(newWidth, _this.props.minWidth, _this.props.maxWidth); // Please note cursor delta is the different between the currently width\n // and the new width.\n\n _this.setState({\n width: newColumnWidth,\n cursorDelta: newWidth\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizeEnd\", function () {\n if (_this._mouseMoveTracker) {\n _this._mouseMoveTracker.releaseMouseMoves();\n }\n\n _this.props.onColumnResizeEnd(_this.state.width, _this.props.columnKey);\n });\n\n return _this;\n }\n\n _createClass(ColumnResizerLine, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.initialEvent && !this._mouseMoveTracker.isDragging()) {\n this._mouseMoveTracker.captureMouseMoves(this.props.initialEvent);\n\n this.setState({\n width: this.props.initialWidth,\n cursorDelta: this.props.initialWidth\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._mouseMoveTracker = new _DOMMouseMoveTracker[\"default\"](this._onMove, this._onColumnResizeEnd, document.body, this.props.touchEnabled);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n width: this.state.width,\n height: this.props.height\n };\n\n if (this.props.isRTL) {\n style.right = this.props.leftOffset;\n } else {\n style.left = this.props.leftOffset;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])({\n 'fixedDataTableColumnResizerLineLayout/main': true,\n 'fixedDataTableColumnResizerLineLayout/hiddenElem': !this.props.visible,\n 'public/fixedDataTableColumnResizerLine/main': true\n }),\n style: style\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableColumnResizerLineLayout/mouseArea'),\n style: {\n height: this.props.height\n }\n }));\n }\n }]);\n\n return ColumnResizerLine;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(ColumnResizerLine, \"propTypes\", {\n visible: _propTypes[\"default\"].bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Offset from left border of the table, please note\n * that the line is a border on diff. So this is really the\n * offset of the column itself.\n */\n leftOffset: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Height of the clickable region of the line.\n * This is assumed to be at the top of the line.\n */\n knobHeight: _propTypes[\"default\"].number.isRequired,\n\n /**\n * The line is a border on a diff, so this is essentially\n * the width of column.\n */\n initialWidth: _propTypes[\"default\"].number,\n\n /**\n * The minimum width this dragger will collapse to\n */\n minWidth: _propTypes[\"default\"].number,\n\n /**\n * The maximum width this dragger will collapse to\n */\n maxWidth: _propTypes[\"default\"].number,\n\n /**\n * Initial click event on the header cell.\n */\n initialEvent: _propTypes[\"default\"].object,\n\n /**\n * When resizing is complete this is called.\n */\n onColumnResizeEnd: _propTypes[\"default\"].func,\n\n /**\n * Column key for the column being resized.\n */\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * Whether the resize handle should respond to touch events or not.\n */\n touchEnabled: _propTypes[\"default\"].bool,\n\n /**\n * Whether the line should render in RTL mode\n */\n isRTL: _propTypes[\"default\"].bool\n});\n\nvar _default = ColumnResizerLine;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _isNaN = _interopRequireDefault(require('lodash/isNaN'));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _debounceCore = _interopRequireDefault(require('././vendor_upstream/core/debounceCore'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nvar _shallowEqual = _interopRequireDefault(require('././vendor_upstream/core/shallowEqual'));\n\nvar _ReactWheelHandler = _interopRequireDefault(require('././vendor_upstream/dom/ReactWheelHandler'));\n\nvar _ariaAttributes = _interopRequireDefault(require('././selectors/ariaAttributes'));\n\nvar _columnTemplates = _interopRequireDefault(require('././selectors/columnTemplates'));\n\nvar _scrollbarsVisible3 = _interopRequireDefault(require('././selectors/scrollbarsVisible'));\n\nvar _tableHeights = _interopRequireDefault(require('././selectors/tableHeights'));\n\nvar _ColumnResizerLine = _interopRequireDefault(require('././ColumnResizerLine'));\n\nvar _FixedDataTableBufferedRows = _interopRequireDefault(require('././FixedDataTableBufferedRows'));\n\nvar _FixedDataTableEventHelper = _interopRequireDefault(require('././FixedDataTableEventHelper'));\n\nvar _FixedDataTableRow = _interopRequireDefault(require('././FixedDataTableRow'));\n\nvar _ReactTouchHandler = _interopRequireDefault(require('././ReactTouchHandler'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ARROW_SCROLL_SPEED = 25;\n/**\n * Data grid component with fixed or scrollable header and columns.\n *\n * The layout of the data table is as follows:\n *\n * ```\n * +---------------------------------------------------+\n * | Fixed Column Group | Scrollable Column Group |\n * | Header | Header |\n * | | |\n * +---------------------------------------------------+\n * | | |\n * | Fixed Header Columns | Scrollable Header Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Body Columns | Scrollable Body Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Footer Columns | Scrollable Footer Columns |\n * | | |\n * +-----------------------+---------------------------+\n * ```\n *\n * - Fixed Column Group Header: These are the headers for a group\n * of columns if included in the table that do not scroll\n * vertically or horizontally.\n *\n * - Scrollable Column Group Header: The header for a group of columns\n * that do not move while scrolling vertically, but move horizontally\n * with the horizontal scrolling.\n *\n * - Fixed Header Columns: The header columns that do not move while scrolling\n * vertically or horizontally.\n *\n * - Scrollable Header Columns: The header columns that do not move\n * while scrolling vertically, but move horizontally with the horizontal\n * scrolling.\n *\n * - Fixed Body Columns: The body columns that do not move while scrolling\n * horizontally, but move vertically with the vertical scrolling.\n *\n * - Scrollable Body Columns: The body columns that move while scrolling\n * vertically or horizontally.\n */\n\nvar FixedDataTable = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n var _super = _createSuper(FixedDataTable);\n\n function FixedDataTable(_props) {\n var _this;\n\n _classCallCheck(this, FixedDataTable);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelX\", function (\n /*number*/\n delta)\n /*boolean*/\n {\n var _this$props = _this.props,\n maxScrollX = _this$props.maxScrollX,\n scrollFlags = _this$props.scrollFlags,\n scrollX = _this$props.scrollX;\n var overflowX = scrollFlags.overflowX;\n\n if (overflowX === 'hidden') {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollX > 0 || delta >= 0 && scrollX < maxScrollX;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelY\", function (\n /*number*/\n delta)\n /*boolean*/\n {\n var _this$props2 = _this.props,\n maxScrollY = _this$props2.maxScrollY,\n scrollFlags = _this$props2.scrollFlags,\n scrollY = _this$props2.scrollY;\n var overflowY = scrollFlags.overflowY;\n\n if (overflowY === 'hidden' || delta === 0) {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollY > 0 || delta >= 0 && scrollY < maxScrollY;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_reportContentHeight\", function () {\n var _tableHeightsSelector = (0, _tableHeights[\"default\"])(_this.props),\n contentHeight = _tableHeightsSelector.contentHeight;\n\n var onContentHeightChange = _this.props.onContentHeightChange;\n\n if (contentHeight !== _this._contentHeight && onContentHeightChange) {\n onContentHeightChange(contentHeight);\n }\n\n _this._contentHeight = contentHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderRows\", function (\n /*number*/\n offsetTop, fixedCellTemplates, fixedRightCellTemplates, scrollableCellTemplates, bodyHeight,\n /*number*/\n ariaRowIndexOffset)\n /*object*/\n {\n var _scrollbarsVisible = (0, _scrollbarsVisible3[\"default\"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableBufferedRows[\"default\"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedCellTemplates,\n fixedRightColumns: fixedRightCellTemplates,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\n height: bodyHeight,\n offsetTop: offsetTop,\n onRowClick: props.onRowClick,\n onRowContextMenu: props.onRowContextMenu,\n onRowDoubleClick: props.onRowDoubleClick,\n onRowMouseUp: props.onRowMouseUp,\n onRowMouseDown: props.onRowMouseDown,\n onRowMouseEnter: props.onRowMouseEnter,\n onRowMouseLeave: props.onRowMouseLeave,\n onRowTouchStart: props.touchScrollEnabled ? props.onRowTouchStart : null,\n onRowTouchEnd: props.touchScrollEnabled ? props.onRowTouchEnd : null,\n onRowTouchMove: props.touchScrollEnabled ? props.onRowTouchMove : null,\n rowClassNameGetter: props.rowClassNameGetter,\n rowExpanded: props.rowExpanded,\n rowKeyGetter: props.rowKeyGetter,\n rowSettings: props.rowSettings,\n scrollLeft: props.scrollX,\n scrollTop: props.scrollY,\n scrollableColumns: scrollableCellTemplates,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onRef\", function (div) {\n _this._divRef = div;\n\n if (_this._wheelHandler) {\n if (_this.props.stopReactWheelPropagation) {\n _this._wheelHandler.setRoot(div);\n } else {\n _this._wheelHandler.setRoot(null);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResize\", function (\n /*number*/\n combinedWidth,\n /*number*/\n leftOffset,\n /*number*/\n cellWidth,\n /*?number*/\n cellMinWidth,\n /*?number*/\n cellMaxWidth,\n /*number|string*/\n columnKey,\n /*object*/\n event) {\n var coordinates = _FixedDataTableEventHelper[\"default\"].getCoordinatesFromEvent(event);\n\n var clientX = coordinates.x;\n var clientY = coordinates.y;\n\n _this.props.columnActions.resizeColumn({\n cellMinWidth: cellMinWidth,\n cellMaxWidth: cellMaxWidth,\n cellWidth: cellWidth,\n columnKey: columnKey,\n combinedWidth: combinedWidth,\n clientX: clientX,\n clientY: clientY,\n leftOffset: leftOffset\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorder\", function (\n /*string*/\n columnKey,\n /*number*/\n width,\n /*number*/\n left,\n /*object*/\n event) {\n _this.props.columnActions.startColumnReorder({\n scrollStart: _this.props.scrollX,\n columnKey: columnKey,\n width: width,\n left: left\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMove\", function (\n /*number*/\n deltaX) {\n _this.props.columnActions.moveColumnReorder(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*object*/\n props,\n /*object*/\n event) {\n var _this$props3 = _this.props,\n columnActions = _this$props3.columnActions,\n _this$props3$columnRe = _this$props3.columnReorderingData,\n cancelReorder = _this$props3$columnRe.cancelReorder,\n columnAfter = _this$props3$columnRe.columnAfter,\n columnBefore = _this$props3$columnRe.columnBefore,\n columnKey = _this$props3$columnRe.columnKey,\n scrollStart = _this$props3$columnRe.scrollStart,\n onColumnReorderEndCallback = _this$props3.onColumnReorderEndCallback,\n onHorizontalScroll = _this$props3.onHorizontalScroll,\n scrollX = _this$props3.scrollX;\n columnActions.stopColumnReorder();\n\n if (cancelReorder) {\n return;\n }\n\n onColumnReorderEndCallback({\n columnAfter: columnAfter,\n columnBefore: columnBefore,\n reorderColumn: columnKey\n });\n\n if (scrollStart !== scrollX && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var _this$props4 = _this.props,\n maxScrollX = _this$props4.maxScrollX,\n maxScrollY = _this$props4.maxScrollY,\n onHorizontalScroll = _this$props4.onHorizontalScroll,\n onVerticalScroll = _this$props4.onVerticalScroll,\n scrollActions = _this$props4.scrollActions,\n scrollFlags = _this$props4.scrollFlags,\n scrollX = _this$props4.scrollX,\n scrollY = _this$props4.scrollY,\n scrolling = _this$props4.scrolling;\n var overflowX = scrollFlags.overflowX,\n overflowY = scrollFlags.overflowY;\n var x = scrollX;\n var y = scrollY;\n\n if (Math.abs(deltaY) > Math.abs(deltaX) && overflowY !== 'hidden') {\n y += deltaY;\n y = y < 0 ? 0 : y;\n y = y > maxScrollY ? maxScrollY : y; //NOTE (jordan) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onVerticalScroll ? onVerticalScroll(y) : true) {\n scrollActions.scrollToY(y);\n }\n } else if (deltaX && overflowX !== 'hidden') {\n x += deltaX;\n x = x < 0 ? 0 : x;\n x = x > maxScrollX ? maxScrollX : x; // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n var roundedX = Math.round(x); //NOTE (asif) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedX) : true) {\n scrollActions.scrollToX(roundedX);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollTo\", function (\n /*number*/\n scrollX,\n /*number*/\n scrollY) {\n _this._scrollToX(scrollX);\n\n _this._scrollToY(scrollY);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollToX\", function (\n /*number*/\n scrollPos) {\n var _this$props5 = _this.props,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n scrollActions = _this$props5.scrollActions,\n scrollX = _this$props5.scrollX,\n scrolling = _this$props5.scrolling;\n\n if (scrollPos === scrollX) {\n return;\n } // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n\n var roundedScrollPos = Math.round(scrollPos);\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedScrollPos) : true) {\n scrollActions.scrollToX(roundedScrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollToY\", function (\n /*number*/\n scrollPos) {\n var _this$props6 = _this.props,\n onVerticalScroll = _this$props6.onVerticalScroll,\n scrollActions = _this$props6.scrollActions,\n scrollY = _this$props6.scrollY;\n\n if (scrollPos === scrollY) {\n return;\n }\n\n if (onVerticalScroll ? onVerticalScroll(scrollPos) : true) {\n scrollActions.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function (\n /* !object */\n prevProps) {\n var _this$props7 = _this.props,\n onScrollStart = _this$props7.onScrollStart,\n scrollX = _this$props7.scrollX,\n scrollY = _this$props7.scrollY,\n onHorizontalScroll = _this$props7.onHorizontalScroll,\n onVerticalScroll = _this$props7.onVerticalScroll,\n ownerHeight = _this$props7.tableSize.ownerHeight,\n scrolling = _this$props7.scrolling;\n var oldEndRowIndex = prevProps.endRowIndex,\n oldFirstRowIndex = prevProps.firstRowIndex,\n oldScrollX = prevProps.scrollX,\n oldScrollY = prevProps.scrollY,\n oldOwnerHeight = prevProps.tableSize.ownerHeight,\n oldScrolling = prevProps.scrolling; // check if scroll values have changed - we have an extra check on NaN because (NaN !== NaN)\n\n var ownerHeightChanged = ownerHeight !== oldOwnerHeight && !((0, _isNaN[\"default\"])(ownerHeight) && (0, _isNaN[\"default\"])(oldOwnerHeight));\n var scrollXChanged = scrollX !== oldScrollX;\n var scrollYChanged = scrollY !== oldScrollY; // if none of the above changed, then a scroll didn't happen at all\n\n if (!ownerHeightChanged && !scrollXChanged && !scrollYChanged) {\n return;\n } // only call onScrollStart if scrolling wasn't on previously\n\n\n if (!oldScrolling && scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldEndRowIndex);\n }\n\n if (scrollXChanged && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\n if (scrollYChanged && onVerticalScroll) {\n onVerticalScroll(scrollY);\n } // debounced version of didScrollStop as we don't immediately stop scrolling\n\n\n _this._didScrollStop();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScrollStopSync\", function () {\n var _this$props8 = _this.props,\n endRowIndex = _this$props8.endRowIndex,\n firstRowIndex = _this$props8.firstRowIndex,\n onScrollEnd = _this$props8.onScrollEnd,\n scrollActions = _this$props8.scrollActions,\n scrollX = _this$props8.scrollX,\n scrollY = _this$props8.scrollY,\n scrolling = _this$props8.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex);\n }\n });\n\n _this._didScrollStop = (0, _debounceCore[\"default\"])(_this._didScrollStopSync, 200, _assertThisInitialized(_this));\n _this._onKeyDown = _this._onKeyDown.bind(_assertThisInitialized(_this));\n\n _this._setupHandlers();\n\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._cleanupHandlers(); // Cancel any pending debounced scroll handling and handle immediately.\n\n\n this._didScrollStop.reset();\n\n this._didScrollStopSync();\n }\n }, {\n key: \"_setupHandlers\",\n value: function _setupHandlers() {\n if (!this._wheelHandler) {\n this._wheelHandler = new _ReactWheelHandler[\"default\"](this._onScroll, this._shouldHandleWheelX, this._shouldHandleWheelY, this.props.isRTL, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n }\n\n if (!this._touchHandler) {\n this._touchHandler = new _ReactTouchHandler[\"default\"](this._onScroll, this._shouldHandleTouchX, this._shouldHandleTouchY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n } // TODO (pradeep): Remove these and pass to our table component directly after\n // React provides an API where event handlers can be specified to be non-passive (facebook/react#6436)\n\n\n if (this._divRef) {\n this._divRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n }\n\n if (this.props.touchScrollEnabled && this._divRef) {\n this._divRef.addEventListener('touchmove', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n }\n }, {\n key: \"_cleanupHandlers\",\n value: function _cleanupHandlers() {\n if (this._wheelHandler) {\n if (this._divRef) {\n this._divRef.removeEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n }\n\n this._wheelHandler = null;\n }\n\n if (this._touchHandler) {\n if (this._divRef) {\n this._divRef.removeEventListener('touchmove', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n\n this._touchHandler = null;\n }\n }\n }, {\n key: \"_onKeyDown\",\n value: function _onKeyDown(event) {\n var _tableHeightsSelector2 = (0, _tableHeights[\"default\"])(this.props),\n scrollbarYHeight = _tableHeightsSelector2.scrollbarYHeight;\n\n if (this.props.keyboardPageEnabled) {\n switch (event.key) {\n case 'PageDown':\n this._onScroll(0, scrollbarYHeight);\n\n event.preventDefault();\n break;\n\n case 'PageUp':\n this._onScroll(0, scrollbarYHeight * -1);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (this.props.keyboardScrollEnabled) {\n switch (event.key) {\n case 'ArrowDown':\n this._onScroll(0, ARROW_SCROLL_SPEED);\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n this._onScroll(0, ARROW_SCROLL_SPEED * -1);\n\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n this._onScroll(ARROW_SCROLL_SPEED, 0);\n\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n this._onScroll(ARROW_SCROLL_SPEED * -1, 0);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(0, _shallowEqual[\"default\"])(this.props, nextProps);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._setupHandlers();\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(\n /*object*/\n prevProps) {\n this._didScroll(prevProps);\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n /**\n * Method to report scrollbars updates\n * @private\n */\n\n }, {\n key: \"_reportScrollBarsUpdates\",\n value: function _reportScrollBarsUpdates() {\n var _tableHeightsSelector3 = (0, _tableHeights[\"default\"])(this.props),\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props9 = this.props,\n width = _this$props9.tableSize.width,\n scrollContentHeight = _this$props9.scrollContentHeight,\n scrollY = _this$props9.scrollY,\n scrollX = _this$props9.scrollX;\n var newScrollState = {\n viewportHeight: visibleRowsHeight,\n contentHeight: scrollContentHeight,\n scrollbarYOffsetTop: bodyOffsetTop,\n scrollY: scrollY,\n viewportWidth: width,\n contentWidth: width + this.props.maxScrollX,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollX: scrollX,\n scrollTo: this._scrollTo,\n scrollToX: this._scrollToX,\n scrollToY: this._scrollToY\n };\n\n if (!(0, _shallowEqual[\"default\"])(this.previousScrollState, newScrollState)) {\n this.props.onScrollBarsUpdate(newScrollState);\n this.previousScrollState = newScrollState;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = (0, _ariaAttributes[\"default\"])(this.props),\n ariaGroupHeaderIndex = _ariaAttributesSelect.ariaGroupHeaderIndex,\n ariaHeaderIndex = _ariaAttributesSelect.ariaHeaderIndex,\n ariaFooterIndex = _ariaAttributesSelect.ariaFooterIndex,\n ariaRowCount = _ariaAttributesSelect.ariaRowCount,\n ariaRowIndexOffset = _ariaAttributesSelect.ariaRowIndexOffset;\n\n var _columnTemplatesSelec = (0, _columnTemplates[\"default\"])(this.props),\n fixedColumnGroups = _columnTemplatesSelec.fixedColumnGroups,\n fixedColumns = _columnTemplatesSelec.fixedColumns,\n fixedRightColumnGroups = _columnTemplatesSelec.fixedRightColumnGroups,\n fixedRightColumns = _columnTemplatesSelec.fixedRightColumns,\n scrollableColumnGroups = _columnTemplatesSelec.scrollableColumnGroups,\n scrollableColumns = _columnTemplatesSelec.scrollableColumns;\n\n var _tableHeightsSelector4 = (0, _tableHeights[\"default\"])(this.props),\n bodyHeight = _tableHeightsSelector4.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector4.bodyOffsetTop,\n componentHeight = _tableHeightsSelector4.componentHeight,\n footOffsetTop = _tableHeightsSelector4.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector4.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector4.visibleRowsHeight;\n\n var _this$props10 = this.props,\n className = _this$props10.className,\n columnReorderingData = _this$props10.columnReorderingData,\n columnResizingData = _this$props10.columnResizingData,\n elementHeights = _this$props10.elementHeights,\n isColumnReordering = _this$props10.isColumnReordering,\n isColumnResizing = _this$props10.isColumnResizing,\n gridAttributesGetter = _this$props10.gridAttributesGetter,\n maxScrollX = _this$props10.maxScrollX,\n maxScrollY = _this$props10.maxScrollY,\n onColumnReorderEndCallback = _this$props10.onColumnReorderEndCallback,\n onColumnResizeEndCallback = _this$props10.onColumnResizeEndCallback,\n scrollContentHeight = _this$props10.scrollContentHeight,\n scrollX = _this$props10.scrollX,\n scrollY = _this$props10.scrollY,\n scrolling = _this$props10.scrolling,\n tableSize = _this$props10.tableSize,\n touchScrollEnabled = _this$props10.touchScrollEnabled,\n scrollbarYWidth = _this$props10.scrollbarYWidth;\n var ownerHeight = tableSize.ownerHeight,\n width = tableSize.width;\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n\n var _scrollbarsVisible2 = (0, _scrollbarsVisible3[\"default\"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var onColumnReorder = onColumnReorderEndCallback ? this._onColumnReorder : null;\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableRow[\"default\"], {\n key: \"group_header\",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableLayout/header'), (0, _cx[\"default\"])('public/fixedDataTable/header')),\n width: width,\n height: groupHeaderHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: 0,\n zIndex: 1,\n offsetTop: 0,\n scrollLeft: scrollX,\n fixedColumns: fixedColumnGroups,\n fixedRightColumns: fixedRightColumnGroups,\n scrollableColumns: scrollableColumnGroups,\n visible: true,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = this.props.scrollbarY;\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = this.props.scrollbarX;\n }\n\n var dragKnob = /*#__PURE__*/_react[\"default\"].createElement(_ColumnResizerLine[\"default\"], {\n height: componentHeight,\n initialWidth: columnResizingData.width || 0,\n minWidth: columnResizingData.minWidth || 0,\n maxWidth: columnResizingData.maxWidth || Number.MAX_VALUE,\n visible: !!isColumnResizing,\n leftOffset: columnResizingData.left || 0,\n knobHeight: headerHeight,\n initialEvent: columnResizingData.initialEvent,\n onColumnResizeEnd: onColumnResizeEndCallback,\n columnKey: columnResizingData.key,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n\n var footer = null;\n\n if (footerHeight) {\n footer = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableRow[\"default\"], {\n key: \"footer\",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableLayout/footer'), (0, _cx[\"default\"])('public/fixedDataTable/footer')),\n width: width,\n height: footerHeight,\n index: -1,\n zIndex: 1,\n offsetTop: footOffsetTop,\n visible: true,\n fixedColumns: fixedColumns.footer,\n fixedRightColumns: fixedRightColumns.footer,\n scrollableColumns: scrollableColumns.footer,\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns.cell, fixedRightColumns.cell, scrollableColumns.cell, bodyHeight, ariaRowIndexOffset);\n\n var header = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableRow[\"default\"], {\n key: \"header\",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableLayout/header'), (0, _cx[\"default\"])('public/fixedDataTable/header')),\n width: width,\n height: headerHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: -1,\n zIndex: 1,\n offsetTop: groupHeaderHeight,\n scrollLeft: scrollX,\n visible: true,\n fixedColumns: fixedColumns.header,\n fixedRightColumns: fixedRightColumns.header,\n scrollableColumns: scrollableColumns.header,\n touchEnabled: touchScrollEnabled,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n onColumnReorderEnd: this._onColumnReorderEnd,\n isColumnReordering: !!isColumnReordering,\n columnReorderingData: columnReorderingData,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL\n });\n\n var topShadow;\n\n if (scrollY) {\n topShadow = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableLayout/topShadow'), (0, _cx[\"default\"])('public/fixedDataTable/topShadow')),\n style: {\n top: bodyOffsetTop\n }\n });\n } // ownerScrollAvailable is true if the rows rendered will overflow the owner element\n // so we show a shadow in that case even if the FDT component can't scroll anymore\n\n\n var ownerScrollAvailable = ownerHeight && ownerHeight < componentHeight && scrollContentHeight > visibleRowsHeight;\n var bottomShadow;\n\n if (ownerScrollAvailable || scrollY < maxScrollY) {\n bottomShadow = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableLayout/bottomShadow'), (0, _cx[\"default\"])('public/fixedDataTable/bottomShadow')),\n style: {\n top: footOffsetTop\n }\n });\n }\n\n var tabIndex = null;\n\n if (this.props.keyboardPageEnabled || this.props.keyboardScrollEnabled) {\n tabIndex = 0;\n }\n\n var tableClassName = className;\n\n if (this.props.isRTL) {\n tableClassName = (0, _joinClasses[\"default\"])(tableClassName, 'fixedDataTable_isRTL');\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n className: (0, _joinClasses[\"default\"])(tableClassName, (0, _cx[\"default\"])('fixedDataTableLayout/main'), (0, _cx[\"default\"])('public/fixedDataTable/main')),\n role: \"grid\",\n \"aria-rowcount\": ariaRowCount\n }, attributes, {\n tabIndex: tabIndex,\n onKeyDown: this._onKeyDown,\n onTouchStart: touchScrollEnabled ? this._touchHandler.onTouchStart : null,\n onTouchEnd: touchScrollEnabled ? this._touchHandler.onTouchEnd : null,\n onTouchCancel: touchScrollEnabled ? this._touchHandler.onTouchCancel : null,\n ref: this._onRef,\n style: {\n height: componentHeight,\n width: width\n }\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableLayout/rowsContainer'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, dragKnob, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTable, \"propTypes\", {\n // TODO (jordan) Remove propType of width without losing documentation (moved to tableSize)\n\n /**\n * Pixel width of table. If all columns do not fit,\n * a horizontal scrollbar will appear.\n */\n width: _propTypes[\"default\"].number.isRequired,\n // TODO (jordan) Remove propType of height without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n height: _propTypes[\"default\"].number,\n\n /**\n * Class name to be passed into parent container\n */\n className: _propTypes[\"default\"].string,\n // TODO (jordan) Remove propType of maxHeight without losing documentation (moved to tableSize)\n\n /**\n * Maximum pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n maxHeight: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of ownerHeight without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table's owner, this is used in a managed scrolling\n * situation when you want to slide the table up from below the fold\n * without having to constantly update the height on every scroll tick.\n * Instead, vary this property on scroll. By using `ownerHeight`, we\n * over-render the table while making sure the footer and horizontal\n * scrollbar of the table are visible when the current space for the table\n * in view is smaller than the final, over-flowing height of table. It\n * allows us to avoid resizing and reflowing table when it is moving in the\n * view.\n *\n * This is used if `ownerHeight < height` (or `maxHeight`).\n */\n ownerHeight: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: _propTypes[\"default\"].oneOf(['hidden', 'auto']),\n overflowY: _propTypes[\"default\"].oneOf(['hidden', 'auto']),\n\n /**\n * Boolean flag indicating of touch scrolling should be enabled\n * This feature is current in beta and may have bugs\n */\n touchScrollEnabled: _propTypes[\"default\"].bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: _propTypes[\"default\"].bool,\n keyboardPageEnabled: _propTypes[\"default\"].bool,\n\n /**\n * Scrollbar X to be rendered\n */\n scrollbarX: _propTypes[\"default\"].node,\n\n /**\n * Height to be reserved for scrollbar X\n */\n scrollbarXHeight: _propTypes[\"default\"].number,\n\n /**\n * Scrollbar Y to be rendered\n */\n scrollbarY: _propTypes[\"default\"].node,\n\n /**\n * Width to be reserved for scrollbar Y\n */\n scrollbarYWidth: _propTypes[\"default\"].number,\n\n /**\n * Function to listen to scroll bars related updates like scroll position, visible rows height, all rows height,....\n */\n onScrollBarsUpdate: _propTypes[\"default\"].func,\n // TODO Remove propType of defaultScrollbars without losing documentation (this is required for FixedDataTableContainer only)\n\n /**\n * Default scrollbars provided by FDT-2 will be rendered, pass false if you want to render custom scrollbars (by passing scrollbarX and scrollbarY props)\n */\n defaultScrollbars: _propTypes[\"default\"].bool,\n // TODO (jordan) Remove propType of showScrollbarX & showScrollbarY without losing documentation (moved to scrollFlags)\n\n /**\n * Hide the scrollbar but still enable scroll functionality\n */\n showScrollbarX: _propTypes[\"default\"].bool,\n showScrollbarY: _propTypes[\"default\"].bool,\n\n /**\n * Callback when horizontally scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onHorizontalScroll: _propTypes[\"default\"].func,\n\n /**\n * Callback when vertically scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onVerticalScroll: _propTypes[\"default\"].func,\n // TODO (jordan) Remove propType of rowsCount without losing documentation (moved to rowSettings)\n\n /**\n * Number of rows in the table.\n */\n rowsCount: _propTypes[\"default\"].number.isRequired,\n // TODO (jordan) Remove propType of rowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of rows unless `rowHeightGetter` is specified and returns\n * different value.\n */\n rowHeight: _propTypes[\"default\"].number.isRequired,\n // TODO (jordan) Remove propType of rowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `rowHeightGetter(index)` is called for each row and the\n * returned value overrides `rowHeight` for particular row.\n */\n rowHeightGetter: _propTypes[\"default\"].func,\n // TODO (jordan) Remove propType of subRowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of sub-row unless `subRowHeightGetter` is specified and returns\n * different value. Defaults to 0 and no sub-row being displayed.\n */\n subRowHeight: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of subRowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `subRowHeightGetter(index)` is called for each row and the\n * returned value overrides `subRowHeight` for particular row.\n */\n subRowHeightGetter: _propTypes[\"default\"].func,\n\n /**\n * The row expanded for table row.\n * This can either be a React element, or a function that generates\n * a React Element. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index)\n * height: number // (supplied from subRowHeight or subRowHeightGetter)\n * width: number // (supplied from the Table)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n rowExpanded: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].element, _propTypes[\"default\"].func]),\n\n /**\n * To get any additional CSS classes that should be added to a row,\n * `rowClassNameGetter(index)` is called.\n */\n rowClassNameGetter: _propTypes[\"default\"].func,\n\n /**\n * If specified, `rowKeyGetter(index)` is called for each row and the\n * returned value overrides `key` for the particular row.\n */\n rowKeyGetter: _propTypes[\"default\"].func,\n // TODO (jordan) Remove propType of groupHeaderHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of the column group header.\n */\n groupHeaderHeight: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of headerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of header.\n */\n headerHeight: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Pixel height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n * Default is headerHeight and groupHeaderHeight.\n *\n * This can be used with CSS to make a header cell span both the group & normal header row.\n * Setting this to a value larger than height will cause the content to\n * overflow the height. This is useful when adding a 2nd table as the group\n * header and vertically merging the 2 headers when a column is not part\n * of a group. Here are the necessary CSS changes:\n *\n * Both headers:\n * - cellGroupWrapper needs overflow-x: hidden and pointer-events: none\n * - cellGroup needs pointer-events: auto to reenable them on child els\n * Group header:\n * - Layout/main needs overflow: visible and a higher z-index\n * - CellLayout/main needs overflow-y: visible\n * - cellGroup needs overflow: visible\n */\n cellGroupWrapperHeight: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of footerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of footer.\n */\n footerHeight: _propTypes[\"default\"].number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: _propTypes[\"default\"].number,\n // TODO (jordan) Remove propType of scrollToRow & scrollToColumn without losing documentation\n\n /**\n * Index of column to scroll to.\n */\n scrollToColumn: _propTypes[\"default\"].number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: _propTypes[\"default\"].number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: _propTypes[\"default\"].number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * and the current first and last row indexes will be provided to the callback.\n */\n onScrollStart: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * and the new first and last row indexes will be provided to the callback.\n */\n onScrollEnd: _propTypes[\"default\"].func,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopReactWheelPropagation: _propTypes[\"default\"].bool,\n\n /**\n * If enabled scroll events will never be bubbled to the browser default handler.\n * If disabled (default when unspecified), scroll events will be bubbled up if the scroll\n * doesn't lead to a change in scroll offsets, which is preferable if you like\n * the page/container to scroll up when the table is already scrolled up max.\n */\n stopScrollDefaultHandling: _propTypes[\"default\"].bool,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopScrollPropagation: _propTypes[\"default\"].bool,\n\n /**\n * Callback that is called when `rowHeightGetter` returns a different height\n * for a row than the `rowHeight` prop. This is necessary because initially\n * table estimates heights of some parts of the content.\n */\n onContentHeightChange: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a contextual-menu event happens on a row.\n */\n onRowContextMenu: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a mouse-down event happens on a row.\n */\n onRowMouseDown: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a mouse-up event happens on a row.\n */\n onRowMouseUp: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a mouse-enter event happens on a row.\n */\n onRowMouseEnter: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a mouse-leave event happens on a row.\n */\n onRowMouseLeave: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a touch-start event happens on a row.\n */\n onRowTouchStart: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a touch-end event happens on a row.\n */\n onRowTouchEnd: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when a touch-move event happens on a row.\n */\n onRowTouchMove: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: _propTypes[\"default\"].func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: _propTypes[\"default\"].func,\n\n /**\n * Whether a column is currently being resized.\n */\n isColumnResizing: _propTypes[\"default\"].bool,\n\n /**\n * Whether columns are currently being reordered.\n */\n isColumnReordering: _propTypes[\"default\"].bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: _propTypes[\"default\"].bool,\n // TODO (jordan) Remove propType of bufferRowCount without losing documentation\n\n /**\n * The number of rows outside the viewport to prerender. Defaults to roughly\n * half of the number of visible rows.\n */\n bufferRowCount: _propTypes[\"default\"].number,\n // TODO (pradeep): Move elementHeights to a selector instead of passing it through redux as state variables\n\n /**\n * Row heights of the header, groupheader, footer, and cell group wrapper\n * grouped into a single object.\n *\n * @ignore\n */\n elementHeights: _propTypes[\"default\"].shape({\n cellGroupWrapperHeight: _propTypes[\"default\"].number,\n footerHeight: _propTypes[\"default\"].number,\n groupHeaderHeight: _propTypes[\"default\"].number,\n headerHeight: _propTypes[\"default\"].number\n }),\n\n /**\n * Callback that returns an object of html attributes to add to the grid element\n */\n gridAttributesGetter: _propTypes[\"default\"].func,\n // TODO (pradeep) Remove propType of rowAttributesGetter without losing documentation (moved to rowSettings)\n\n /**\n * Callback that returns an object of html attributes to add to each row element.\n *\n * ```\n * function(rowIndex: number)\n * ```\n */\n rowAttributesGetter: _propTypes[\"default\"].func\n});\n\n_defineProperty(FixedDataTable, \"defaultProps\",\n/*object*/\n{\n elementHeights: {\n cellGroupWrapperHeight: undefined,\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n keyboardScrollEnabled: false,\n keyboardPageEnabled: false,\n touchScrollEnabled: false,\n stopScrollPropagation: false\n});\n\nvar _default = FixedDataTable;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _defaultTo = _interopRequireDefault(require('lodash/defaultTo'));\n\nvar _inRange = _interopRequireDefault(require('lodash/inRange'));\n\nvar _isNil = _interopRequireDefault(require('lodash/isNil'));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _emptyFunction = _interopRequireDefault(require('././vendor_upstream/core/emptyFunction'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nvar _FixedDataTableRow = _interopRequireDefault(require('././FixedDataTableRow'));\n\nvar _FixedDataTableTranslateDOMPosition = _interopRequireDefault(require('././FixedDataTableTranslateDOMPosition'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FixedDataTableBufferedRows = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n var _super = _createSuper(FixedDataTableBufferedRows);\n\n function FixedDataTableBufferedRows(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n _this = _super.call(this, props);\n _this._staticRowArray = [];\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate()\n /*boolean*/\n {\n // Don't add PureRenderMixin to this component please.\n return true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._staticRowArray.length = 0;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n rowOffsets = _this$props.rowOffsets,\n scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n rowsToRender = rowsToRender || [];\n\n if (isScrolling) {\n // allow static array to grow while scrolling\n this._staticRowArray.length = Math.max(this._staticRowArray.length, rowsToRender.length);\n } else {\n // when scrolling is done, static array can shrink to fit the buffer\n this._staticRowArray.length = rowsToRender.length;\n }\n /**\n * NOTE (pradeep): To increase vertical scrolling performance, we only translate the parent container.\n * This means, rows at a particular index won't need to be rerendered.\n *\n * But browsers have limits and are unable to translate the container past a limit (known here as bufferHeight).\n * To work around this, we wrap the translated amount over bufferHeight.\n *\n * For the container, the wrapped offset will be:\n * const containerOffsetTop = offsetTop - (scrollTop % bufferHeight);\n *\n * Similarly, the row offset will also need to be wrapped:\n * const rowOffsetTop = rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight);\n *\n * Therefore,\n * (rowOffsetTop + containerOffsetTop)\n * = offsetTop - (scrollTop % bufferHeight) + rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight)\n * = offsetTop + rowOffset - scrollTop\n */\n\n\n var bufferHeight = 1000000;\n var containerOffsetTop = offsetTop - scrollTop % bufferHeight; // render each row from the buffer into the static row array\n\n for (var i = 0; i < this._staticRowArray.length; i++) {\n var _this$_staticRowArray;\n\n // if the row doesn't exist in the buffer set, then take the previous one\n var rowIndex = (0, _defaultTo[\"default\"])(rowsToRender[i], (_this$_staticRowArray = this._staticRowArray[i]) === null || _this$_staticRowArray === void 0 ? void 0 : _this$_staticRowArray.props.index);\n\n if ((0, _isNil[\"default\"])(rowIndex) || !(0, _inRange[\"default\"])(rowIndex, 0, this.props.rowSettings.rowsCount)) {\n this._staticRowArray[i] = null;\n continue;\n }\n\n var rowOffsetTop = rowOffsets[rowIndex] - Math.floor(scrollTop / bufferHeight) * bufferHeight;\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n rowOffsetTop: rowOffsetTop\n });\n } // We translate all the rows together with a parent div. This saves a lot of renders.\n\n\n var style = {};\n (0, _FixedDataTableTranslateDOMPosition[\"default\"])(style, 0, containerOffsetTop, false); // NOTE (pradeep): Sort the rows by row index so that they appear with the right order in the DOM (see #221)\n\n var sortedRows = this._staticRowArray.slice().sort(this.rowSortComparator);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style\n }, sortedRows);\n }\n /**\n * @typedef RowProps\n * @prop {number} rowIndex\n * @prop {number} key\n * @prop {number} rowOffsetTop\n *\n * @param {RowProps} rowProps\n * @return {!Object}\n */\n\n }, {\n key: \"renderRow\",\n value: function renderRow(_ref)\n /*object*/\n {\n var rowIndex = _ref.rowIndex,\n key = _ref.key,\n rowOffsetTop = _ref.rowOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || _emptyFunction[\"default\"];\n var rowProps = {};\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = rowOffsetTop;\n rowProps.key = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : key;\n rowProps.attributes = props.rowSettings.rowAttributesGetter && props.rowSettings.rowAttributesGetter(rowIndex);\n var hasBottomBorder = rowIndex === props.rowSettings.rowsCount - 1 && props.showLastRowBorder;\n rowProps.className = (0, _joinClasses[\"default\"])(rowClassNameGetter(rowIndex), (0, _cx[\"default\"])('public/fixedDataTable/bodyRow'), (0, _cx[\"default\"])({\n 'fixedDataTableLayout/hasBottomBorder': hasBottomBorder,\n 'public/fixedDataTable/hasBottomBorder': hasBottomBorder\n }));\n var visible = (0, _inRange[\"default\"])(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableRow[\"default\"], _extends({\n key: key,\n index: rowIndex,\n ariaRowIndex: rowIndex + props.ariaRowIndexOffset,\n isScrolling: props.isScrolling,\n width: props.width,\n rowExpanded: props.rowExpanded,\n scrollLeft: Math.round(props.scrollLeft),\n fixedColumns: props.fixedColumns,\n fixedRightColumns: props.fixedRightColumns,\n scrollableColumns: props.scrollableColumns,\n onClick: props.onRowClick,\n onContextMenu: props.onRowContextMenu,\n onDoubleClick: props.onRowDoubleClick,\n onMouseDown: props.onRowMouseDown,\n onMouseUp: props.onRowMouseUp,\n onMouseEnter: props.onRowMouseEnter,\n onMouseLeave: props.onRowMouseLeave,\n onTouchStart: props.onRowTouchStart,\n onTouchEnd: props.onRowTouchEnd,\n onTouchMove: props.onRowTouchMove,\n showScrollbarY: props.showScrollbarY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n visible: visible\n }, rowProps));\n }\n /**\n * @param {?React.ReactElement} rowA\n * @param {?React.ReactElement} rowB\n * @returns {number}\n * @private\n */\n\n }, {\n key: \"rowSortComparator\",\n value: function rowSortComparator(rowA, rowB) {\n var _rowA$props$ariaRowIn, _rowB$props$ariaRowIn;\n\n // NOTE (pradeep): Aria row index can't be zero, but the row itself can be undefined.\n // I picked -1 as the default here. As long as the default sites outside the usual row index range,\n // it should work. I purposefully didn't choose Infinity or -Infinity, as they might break\n // arithmetic operations.\n return ((_rowA$props$ariaRowIn = rowA === null || rowA === void 0 ? void 0 : rowA.props.ariaRowIndex) !== null && _rowA$props$ariaRowIn !== void 0 ? _rowA$props$ariaRowIn : -1) - ((_rowB$props$ariaRowIn = rowB === null || rowB === void 0 ? void 0 : rowB.props.ariaRowIndex) !== null && _rowB$props$ariaRowIn !== void 0 ? _rowB$props$ariaRowIn : -1);\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableBufferedRows, \"propTypes\", {\n ariaRowIndexOffset: _propTypes[\"default\"].number,\n isScrolling: _propTypes[\"default\"].bool,\n firstViewportRowIndex: _propTypes[\"default\"].number.isRequired,\n endViewportRowIndex: _propTypes[\"default\"].number.isRequired,\n fixedColumns: _propTypes[\"default\"].array.isRequired,\n fixedRightColumns: _propTypes[\"default\"].array.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n offsetTop: _propTypes[\"default\"].number.isRequired,\n onRowClick: _propTypes[\"default\"].func,\n onRowContextMenu: _propTypes[\"default\"].func,\n onRowDoubleClick: _propTypes[\"default\"].func,\n onRowMouseDown: _propTypes[\"default\"].func,\n onRowMouseUp: _propTypes[\"default\"].func,\n onRowMouseEnter: _propTypes[\"default\"].func,\n onRowMouseLeave: _propTypes[\"default\"].func,\n onRowTouchStart: _propTypes[\"default\"].func,\n onRowTouchEnd: _propTypes[\"default\"].func,\n onRowTouchMove: _propTypes[\"default\"].func,\n rowClassNameGetter: _propTypes[\"default\"].func,\n rowExpanded: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].element, _propTypes[\"default\"].func]),\n rowOffsets: _propTypes[\"default\"].object.isRequired,\n rowKeyGetter: _propTypes[\"default\"].func,\n rowSettings: _propTypes[\"default\"].shape({\n rowAttributesGetter: _propTypes[\"default\"].func,\n rowHeightGetter: _propTypes[\"default\"].func,\n rowsCount: _propTypes[\"default\"].number.isRequired,\n subRowHeightGetter: _propTypes[\"default\"].func\n }),\n rowsToRender: _propTypes[\"default\"].array.isRequired,\n scrollLeft: _propTypes[\"default\"].number.isRequired,\n scrollTop: _propTypes[\"default\"].number.isRequired,\n scrollableColumns: _propTypes[\"default\"].array.isRequired,\n showLastRowBorder: _propTypes[\"default\"].bool,\n showScrollbarY: _propTypes[\"default\"].bool,\n width: _propTypes[\"default\"].number.isRequired,\n isRTL: _propTypes[\"default\"].bool\n});\n\nvar _default = FixedDataTableBufferedRows;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nvar _shallowEqual = _interopRequireDefault(require('././vendor_upstream/core/shallowEqual'));\n\nvar _FixedDataTableCellDefaultDeprecated = _interopRequireDefault(require('././FixedDataTableCellDefaultDeprecated'));\n\nvar _FixedDataTableColumnReorderHandle = _interopRequireDefault(require('././FixedDataTableColumnReorderHandle'));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FixedDataTableCell = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n var _super = _createSuper(FixedDataTableCell);\n\n function FixedDataTableCell() {\n var _this;\n\n _classCallCheck(this, FixedDataTableCell);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isReorderingThisColumn: false,\n displacement: 0,\n reorderingDisplacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizerMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnResize(_this.props.left, _this.props.width, _this.props.minWidth, _this.props.maxWidth, _this.props.columnKey, event);\n /**\n * This prevents the rows from moving around when we resize the\n * headers on touch devices.\n */\n\n\n if (_this.props.touchEnabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnReorder(_this.props.columnKey, _this.props.width, _this.props.left, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_suppressEvent\", function (\n /*object*/\n event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCell, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.isVisible === nextProps.isVisible) {\n return false;\n } //Performance check not enabled\n\n\n if (!nextProps.pureRendering) {\n return true;\n }\n\n var _this$props = this.props,\n oldCell = _this$props.cell,\n oldProps = _objectWithoutProperties(_this$props, [\"cell\"]);\n\n var newCell = nextProps.cell,\n newProps = _objectWithoutProperties(nextProps, [\"cell\"]);\n\n if (!(0, _shallowEqual[\"default\"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!(0, _shallowEqual[\"default\"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _this$props2 = this.props,\n height = _this$props2.height,\n width = _this$props2.width,\n isVisible = _this$props2.isVisible,\n columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n props = _objectWithoutProperties(_this$props2, [\"height\", \"width\", \"isVisible\", \"columnKey\", \"isHeaderOrFooter\"]);\n\n var style = {\n height: height,\n width: width\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n if (this.state.isReorderingThisColumn) {\n var DIR_SIGN = this.props.isRTL ? -1 : 1;\n style.transform = \"translateX(\".concat(this.state.displacement * DIR_SIGN, \"px) translateZ(0)\");\n style.zIndex = 1;\n }\n\n var className = (0, _joinClasses[\"default\"])((0, _cx[\"default\"])({\n 'fixedDataTableCellLayout/main': true,\n 'fixedDataTableCellLayout/lastChild': props.lastChild,\n 'fixedDataTableCellLayout/alignRight': props.align === 'right',\n 'fixedDataTableCellLayout/alignCenter': props.align === 'center',\n 'public/fixedDataTableCell/alignRight': props.align === 'right',\n 'public/fixedDataTableCell/highlighted': props.highlighted,\n 'public/fixedDataTableCell/main': true,\n 'public/fixedDataTableCell/hasReorderHandle': !!props.onColumnReorder,\n 'public/fixedDataTableCell/reordering': this.state.isReorderingThisColumn\n }), props.className);\n var columnResizerComponent;\n\n if (props.onColumnResize) {\n var columnResizerStyle = {\n height: height\n };\n columnResizerComponent = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableCellLayout/columnResizerContainer'),\n style: columnResizerStyle,\n onMouseDown: this._onColumnResizerMouseDown,\n onTouchStart: this.props.touchEnabled ? this._onColumnResizerMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this._suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this._suppressEvent : null\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableCellLayout/columnResizerKnob'), (0, _cx[\"default\"])('public/fixedDataTableCell/columnResizerKnob')),\n style: columnResizerStyle\n }));\n }\n\n var columnReorderComponent;\n\n if (props.onColumnReorder) {\n //header row\n columnReorderComponent = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableColumnReorderHandle[\"default\"], _extends({\n columnKey: this.columnKey,\n touchEnabled: this.props.touchEnabled,\n onMouseDown: this._onColumnReorderMouseDown,\n onTouchStart: this._onColumnReorderMouseDown,\n height: height\n }, this.props));\n }\n\n var cellProps = {\n columnKey: columnKey,\n height: height,\n width: width,\n isVisible: isVisible\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if ( /*#__PURE__*/_react[\"default\"].isValidElement(props.cell)) {\n content = /*#__PURE__*/_react[\"default\"].cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === 'function') {\n content = props.cell(cellProps);\n } else {\n content = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableCellDefaultDeprecated[\"default\"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? 'columnheader' : 'gridcell';\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className,\n style: style,\n role: role\n }, columnResizerComponent, columnReorderComponent, content);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var left = nextProps.left + prevState.displacement;\n var newState = {\n isReorderingThisColumn: false\n };\n\n if (!nextProps.isColumnReordering) {\n newState.displacement = 0;\n return newState;\n }\n\n var originalLeft = nextProps.columnReorderingData.originalLeft;\n var reorderCellLeft = originalLeft + nextProps.columnReorderingData.dragDistance;\n var farthestPossiblePoint = nextProps.columnGroupWidth - nextProps.columnReorderingData.columnWidth; // ensure the cell isn't being dragged out of the column group\n\n reorderCellLeft = Math.max(reorderCellLeft, 0);\n reorderCellLeft = Math.min(reorderCellLeft, farthestPossiblePoint); // check if current cell belongs to the column that's being reordered\n\n if (nextProps.columnKey === nextProps.columnReorderingData.columnKey) {\n newState.displacement = reorderCellLeft - nextProps.left;\n newState.isReorderingThisColumn = true;\n return newState;\n }\n\n var reorderCellRight = reorderCellLeft + nextProps.columnReorderingData.columnWidth;\n var reorderCellCenter = reorderCellLeft + nextProps.columnReorderingData.columnWidth / 2;\n var centerOfThisColumn = left + nextProps.width / 2;\n var cellIsBeforeOneBeingDragged = reorderCellCenter > centerOfThisColumn;\n var cellWasOriginallyBeforeOneBeingDragged = originalLeft > nextProps.left;\n var changedPosition = false;\n\n if (cellIsBeforeOneBeingDragged) {\n if (reorderCellLeft < centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = nextProps.columnReorderingData.columnWidth;\n } else {\n newState.displacement = 0;\n }\n }\n } else {\n if (reorderCellRight > centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = 0;\n } else {\n newState.displacement = nextProps.columnReorderingData.columnWidth * -1;\n }\n }\n }\n\n if (changedPosition) {\n if (cellIsBeforeOneBeingDragged) {\n if (!nextProps.columnReorderingData.columnAfter) {\n nextProps.columnReorderingData.columnAfter = nextProps.columnKey;\n }\n } else {\n nextProps.columnReorderingData.columnBefore = nextProps.columnKey;\n }\n } else if (cellIsBeforeOneBeingDragged) {\n nextProps.columnReorderingData.columnBefore = nextProps.columnKey;\n } else if (!nextProps.columnReorderingData.columnAfter) {\n nextProps.columnReorderingData.columnAfter = nextProps.columnKey;\n }\n\n return newState;\n }\n }]);\n\n return FixedDataTableCell;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableCell, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: _propTypes[\"default\"].bool,\n align: _propTypes[\"default\"].oneOf(['left', 'center', 'right']),\n className: _propTypes[\"default\"].string,\n highlighted: _propTypes[\"default\"].bool,\n width: _propTypes[\"default\"].number.isRequired,\n minWidth: _propTypes[\"default\"].number,\n maxWidth: _propTypes[\"default\"].number,\n height: _propTypes[\"default\"].number.isRequired,\n cell: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].element, _propTypes[\"default\"].func]),\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * The row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number left\n * @param number width\n * @param number minWidth\n * @param number maxWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: _propTypes[\"default\"].func,\n onColumnReorder: _propTypes[\"default\"].func,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: _propTypes[\"default\"].number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: _propTypes[\"default\"].bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: _propTypes[\"default\"].bool,\n\n /**\n * Whether the cell group is part of the header or footer\n */\n isHeaderOrFooter: _propTypes[\"default\"].bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: _propTypes[\"default\"].bool,\n\n /**\n * Whether this cell is visible (i.e, inside the viewport) or not.\n */\n isVisible: _propTypes[\"default\"].bool.isRequired\n});\n\n_defineProperty(FixedDataTableCell, \"defaultProps\",\n/*object*/\n{\n align: 'left',\n highlighted: false\n});\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(FixedDataTableCell);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: \"render\",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don't pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n isVisible = _this$props.isVisible,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n rowIndex = _this$props.rowIndex,\n props = _objectWithoutProperties(_this$props, [\"height\", \"width\", \"isVisible\", \"style\", \"className\", \"children\", \"columnKey\", \"rowIndex\"]);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({}, props, {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableCellLayout/wrap'), (0, _cx[\"default\"])('public/fixedDataTableCell/wrap'), (0, _cx[\"default\"])('public/fixedDataTableCell/cellContent'), className),\n style: innerStyle\n }), children);\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableCellDefault, \"propTypes\", {\n /**\n * Outer height of the cell.\n */\n height: _propTypes[\"default\"].number,\n\n /**\n * Outer width of the cell.\n */\n width: _propTypes[\"default\"].number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the 'cell' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: _propTypes[\"default\"].number,\n\n /**\n * Whether this cell is currently within the viewport.\n */\n isVisible: _propTypes[\"default\"].bool\n});\n\nvar _default = FixedDataTableCellDefault;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * NOTE (pradeep): This component is deprecated since it uses a lot of wrapper DIV nodes for styling/layout.\n * The replacement is src/FixedDataTableCell.js which uses a single wrapper to achieve the same table cell layout.\n *\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: \"render\",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don't pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n isVisible = _this$props.isVisible,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n rowIndex = _this$props.rowIndex,\n props = _objectWithoutProperties(_this$props, [\"height\", \"width\", \"isVisible\", \"style\", \"className\", \"children\", \"columnKey\", \"rowIndex\"]);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({}, props, {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableCellLayout/wrap1'), (0, _cx[\"default\"])('public/fixedDataTableCell/wrap1'), className),\n style: innerStyle\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableCellLayout/wrap2'), (0, _cx[\"default\"])('public/fixedDataTableCell/wrap2'))\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('fixedDataTableCellLayout/wrap3'), (0, _cx[\"default\"])('public/fixedDataTableCell/wrap3'))\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('public/fixedDataTableCell/cellContent')\n }, children))));\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableCellDefault, \"propTypes\", {\n /**\n * Outer height of the cell.\n */\n height: _propTypes[\"default\"].number,\n\n /**\n * Outer width of the cell.\n */\n width: _propTypes[\"default\"].number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the 'cell' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: _propTypes[\"default\"].number,\n\n /**\n * Whether this cell is currently within the viewport.\n */\n isVisible: _propTypes[\"default\"].bool\n});\n\nvar _default = FixedDataTableCellDefault;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellGroup\n * @typechecks\n */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _widthHelper = require('././helper/widthHelper');\n\nvar _FixedDataTableCell = _interopRequireDefault(require('././FixedDataTableCell'));\n\nvar _FixedDataTableTranslateDOMPosition = _interopRequireDefault(require('././FixedDataTableTranslateDOMPosition'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FixedDataTableCellGroupImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellGroupImpl);\n\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don't commit this component with enabled propTypes.\n */\n function FixedDataTableCellGroupImpl(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderCell\", function (\n /*number*/\n rowIndex,\n /*number*/\n height,\n /*object*/\n columnProps,\n /*object*/\n cellTemplate,\n /*number*/\n left,\n /*string*/\n key,\n /*number*/\n columnGroupWidth,\n /*boolean*/\n isColumnReordering,\n /*boolean*/\n isHorizontallyVisible)\n /*object*/\n {\n var cellIsResizable = columnProps.isResizable && _this.props.onColumnResize;\n var onColumnResize = cellIsResizable ? _this.props.onColumnResize : null;\n var cellIsReorderable = columnProps.isReorderable && _this.props.onColumnReorder && rowIndex === -1 && columnGroupWidth !== columnProps.width;\n var onColumnReorder = cellIsReorderable ? _this.props.onColumnReorder : null;\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n return /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableCell[\"default\"], {\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n align: columnProps.align,\n className: className,\n height: height,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResize: onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: _this.props.onColumnReorderMove,\n onColumnReorderEnd: _this.props.onColumnReorderEnd,\n isColumnReordering: isColumnReordering,\n columnReorderingData: _this.props.columnReorderingData,\n rowIndex: rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: left,\n cell: cellTemplate,\n columnGroupWidth: columnGroupWidth,\n pureRendering: pureRendering,\n isRTL: _this.props.isRTL,\n isVisible: _this.props.isVisible && isHorizontallyVisible\n });\n });\n\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var props = this.props;\n var columns = props.columns;\n var cells = new Array(columns.length);\n var contentWidth = (0, _widthHelper.sumPropWidths)(columns);\n var isColumnReordering = props.isColumnReordering && columns.reduce(function (acc, column) {\n return acc || props.columnReorderingData.columnKey === column.props.columnKey;\n }, false);\n var currentPosition = 0;\n\n for (var i = 0, j = columns.length; i < j; i++) {\n var columnProps = columns[i].props;\n var cellTemplate = columns[i].template;\n var recyclable = columnProps.allowCellsRecycling && !isColumnReordering;\n var isHorizontallyVisible = currentPosition - props.left <= props.width && currentPosition - props.left + columnProps.width >= 0;\n\n if (!recyclable || isHorizontallyVisible) {\n var key = columnProps.columnKey || 'cell_' + i;\n cells[i] = this._renderCell(props.rowIndex, props.rowHeight, columnProps, cellTemplate, currentPosition, key, contentWidth, isColumnReordering, isHorizontallyVisible);\n }\n\n currentPosition += columnProps.width;\n }\n\n var style = {\n height: props.height,\n position: 'absolute',\n width: contentWidth,\n zIndex: props.zIndex\n };\n (0, _FixedDataTableTranslateDOMPosition[\"default\"])(style, -1 * props.left, 0, this._initialRender, this.props.isRTL);\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableCellGroupLayout/cellGroup'),\n style: style\n }, cells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n /**\n * Array of per column configuration properties.\n */\n columns: _propTypes[\"default\"].array.isRequired,\n isScrolling: _propTypes[\"default\"].bool,\n left: _propTypes[\"default\"].number,\n onColumnResize: _propTypes[\"default\"].func,\n onColumnReorder: _propTypes[\"default\"].func,\n onColumnReorderMove: _propTypes[\"default\"].func,\n onColumnReorderEnd: _propTypes[\"default\"].func,\n height: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: _propTypes[\"default\"].number,\n rowHeight: _propTypes[\"default\"].number.isRequired,\n rowIndex: _propTypes[\"default\"].number.isRequired,\n width: _propTypes[\"default\"].number.isRequired,\n zIndex: _propTypes[\"default\"].number.isRequired,\n touchEnabled: _propTypes[\"default\"].bool,\n isHeaderOrFooter: _propTypes[\"default\"].bool,\n isRTL: _propTypes[\"default\"].bool,\n isVisible: _propTypes[\"default\"].bool.isRequired\n});\n\nvar FixedDataTableCellGroup = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableCellGroup);\n\n function FixedDataTableCellGroup() {\n var _this2;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this2), \"_onColumnResize\", function (\n /*number*/\n left,\n /*number*/\n width,\n /*?number*/\n minWidth,\n /*?number*/\n maxWidth,\n /*string|number*/\n columnKey,\n /*object*/\n event) {\n _this2.props.onColumnResize && _this2.props.onColumnResize(_this2.props.offsetLeft, left - _this2.props.left + width, width, minWidth, maxWidth, columnKey, event);\n });\n\n return _this2;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n /// if offsets and visibility haven't changed for the same cell group while scrolling, then skip update\n return !(nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.left === nextProps.left && this.props.offsetLeft === nextProps.offsetLeft && this.props.isVisible === nextProps.isVisible);\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetLeft = _this$props.offsetLeft,\n props = _objectWithoutProperties(_this$props, [\"offsetLeft\"]);\n\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (this.props.isRTL) {\n style.right = offsetLeft;\n } else {\n style.left = offsetLeft;\n }\n\n var onColumnResize = props.onColumnResize ? this._onColumnResize : null;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n className: (0, _cx[\"default\"])('fixedDataTableCellGroupLayout/cellGroupWrapper')\n }, /*#__PURE__*/_react[\"default\"].createElement(FixedDataTableCellGroupImpl, _extends({}, props, {\n onColumnResize: onColumnResize\n })));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableCellGroup, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: _propTypes[\"default\"].bool,\n\n /**\n * Height of the row.\n */\n height: _propTypes[\"default\"].number.isRequired,\n offsetLeft: _propTypes[\"default\"].number,\n left: _propTypes[\"default\"].number,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: _propTypes[\"default\"].number.isRequired\n});\n\n_defineProperty(FixedDataTableCellGroup, \"defaultProps\",\n/*object*/\n{\n left: 0,\n offsetLeft: 0\n});\n\nvar _default = FixedDataTableCellGroup;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Component that defines the attributes of table column.\n */\nvar FixedDataTableColumn = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumn, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumn);\n\n function FixedDataTableColumn() {\n _classCallCheck(this, FixedDataTableColumn);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumn, [{\n key: \"render\",\n value: function render() {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Component should never render');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumn;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableColumn, \"__TableColumn__\", true);\n\n_defineProperty(FixedDataTableColumn, \"propTypes\", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: _propTypes[\"default\"].oneOf(['left', 'center', 'right']),\n\n /**\n * Controls if the column is fixed when scrolling in the X axis.\n */\n fixed: _propTypes[\"default\"].bool,\n\n /**\n * Controls if the column is fixed to the right side of the table when scrolling in the X axis.\n */\n fixedRight: _propTypes[\"default\"].bool,\n\n /**\n * The header cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n header: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].node, _propTypes[\"default\"].func]),\n\n /**\n * This is the body cell that will be cloned for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index of the cell)\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n cell: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].node, _propTypes[\"default\"].func]),\n\n /**\n * This is the footer cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n footer: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].node, _propTypes[\"default\"].func]),\n\n /**\n * This is used to uniquely identify the column, and is not required unless\n * you a resizing columns. This will be the key given in the\n * `onColumnResizeEndCallback` on the Table.\n */\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * The pixel width of the column.\n */\n width: _propTypes[\"default\"].number.isRequired,\n\n /**\n * If this is a resizable column this is its minimum pixel width.\n */\n minWidth: _propTypes[\"default\"].number,\n\n /**\n * If this is a resizable column this is its maximum pixel width.\n */\n maxWidth: _propTypes[\"default\"].number,\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow API\n * from http://www.w3.org/TR/css3-flexbox/. Basically, take any available\n * extra width and distribute it proportionally according to all columns'\n * flexGrow values. Defaults to zero (no-flexing).\n */\n flexGrow: _propTypes[\"default\"].number,\n\n /**\n * Whether the column can be resized.\n * Please note that if a column has a flex grow, once you resize\n * the column, this will be set to 0.\n *\n * This property only provides the UI for the column resizing. If this\n * is set to true, you will need to set the onColumnResizeEndCallback table\n * property and render your columns appropriately.\n */\n isResizable: _propTypes[\"default\"].bool,\n\n /**\n * Whether the column can be dragged to reorder.\n */\n isReorderable: _propTypes[\"default\"].bool,\n\n /**\n * Whether cells in this column can be removed from document when outside\n * of viewport as a result of horizontal scrolling.\n * Setting this property to true allows the table to not render cells in\n * particular column that are outside of viewport for visible rows. This\n * allows to create table with many columns and not have vertical scrolling\n * performance drop.\n * Setting the property to false will keep previous behaviour and keep\n * cell rendered if the row it belongs to is visible.\n */\n allowCellsRecycling: _propTypes[\"default\"].bool,\n\n /**\n * Flag to enable performance check when rendering. Stops the component from\n * rendering if none of it's passed in props have changed\n */\n pureRendering: _propTypes[\"default\"].bool,\n\n /**\n * Additional classnames to be added to cells under this column.\n */\n cellClassName: _propTypes[\"default\"].string\n});\n\n_defineProperty(FixedDataTableColumn, \"defaultProps\", {\n allowCellsRecycling: false,\n fixed: false,\n fixedRight: false\n});\n\nvar _default = FixedDataTableColumn;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Component that defines the attributes of a table column group.\n */\nvar FixedDataTableColumnGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumnGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumnGroup);\n\n function FixedDataTableColumnGroup() {\n _classCallCheck(this, FixedDataTableColumnGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumnGroup, [{\n key: \"render\",\n value: function render() {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Component should never render');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumnGroup;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableColumnGroup, \"__TableColumnGroup__\", true);\n\n_defineProperty(FixedDataTableColumnGroup, \"propTypes\", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: _propTypes[\"default\"].oneOf(['left', 'center', 'right']),\n\n /**\n * Controls if the column group is fixed when scrolling in the X axis.\n */\n fixed: _propTypes[\"default\"].bool,\n\n /**\n * This is the header cell for this column group.\n * This can either be a string or a React element. Passing in a string\n * will render a default footer cell with that string. By default, the React\n * element passed in can expect to receive the following props:\n *\n * ```\n * props: {\n * height: number // (supplied from the groupHeaderHeight)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * You can also pass in a function that returns a react elemnt, with the\n * props object above passed in as the first parameter.\n */\n header: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].node, _propTypes[\"default\"].func])\n});\n\n_defineProperty(FixedDataTableColumnGroup, \"defaultProps\", {\n fixed: false\n});\n\nvar _default = FixedDataTableColumnGroup;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _DOMMouseMoveTracker = _interopRequireDefault(require('././vendor_upstream/dom/DOMMouseMoveTracker'));\n\nvar _FixedDataTableEventHelper = _interopRequireDefault(require('././FixedDataTableEventHelper'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FixedDataTableColumnReorderHandle = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(FixedDataTableColumnReorderHandle, _React$PureComponent);\n\n var _super = _createSuper(FixedDataTableColumnReorderHandle);\n\n function FixedDataTableColumnReorderHandle() {\n var _this;\n\n _classCallCheck(this, FixedDataTableColumnReorderHandle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n dragDistance: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var targetRect = event.target.getBoundingClientRect();\n\n var coordinates = _FixedDataTableEventHelper[\"default\"].getCoordinatesFromEvent(event);\n\n var mouseLocationInElement = coordinates.x - targetRect.left;\n var mouseLocationInRelationToColumnGroup = mouseLocationInElement + event.target.parentElement.offsetLeft;\n _this._mouseMoveTracker = new _DOMMouseMoveTracker[\"default\"](_this._onMove, _this._onColumnReorderEnd, document.body, _this.props.touchEnabled);\n\n _this._mouseMoveTracker.captureMouseMoves(event);\n\n _this.setState({\n dragDistance: 0\n });\n\n _this.props.onMouseDown({\n columnKey: _this.props.columnKey,\n mouseLocation: {\n dragDistance: 0,\n inElement: mouseLocationInElement,\n inColumnGroup: mouseLocationInRelationToColumnGroup\n }\n });\n\n _this._distance = 0;\n _this._animating = true;\n _this.frameId = requestAnimationFrame(_this._updateState);\n /**\n * This prevents the rows from moving around when we drag the\n * headers on touch devices.\n */\n\n if (_this.props.touchEnabled) {\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n _this._distance = _this.state.dragDistance + deltaX * (_this.props.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*boolean*/\n cancelReorder) {\n _this._animating = false;\n cancelAnimationFrame(_this.frameId);\n _this.frameId = null;\n\n if (_this._mouseMoveTracker) {\n _this._mouseMoveTracker.releaseMouseMoves();\n }\n\n _this.props.columnReorderingData.cancelReorder = cancelReorder;\n\n _this.props.onColumnReorderEnd();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateState\", function () {\n if (_this._animating) {\n _this.frameId = requestAnimationFrame(_this._updateState);\n }\n\n _this.setState({\n dragDistance: _this._distance\n });\n\n _this.props.onColumnReorderMove(_this._distance);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableColumnReorderHandle, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n height: this.props.height\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])({\n 'fixedDataTableCellLayout/columnReorderContainer': true,\n 'fixedDataTableCellLayout/columnReorderContainer/active': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n onTouchMove: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n style: style\n });\n }\n }]);\n\n return FixedDataTableColumnReorderHandle;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(FixedDataTableColumnReorderHandle, \"propTypes\", {\n /**\n * When resizing is complete this is called.\n */\n onColumnReorderEnd: _propTypes[\"default\"].func,\n\n /**\n * Column key for the column being reordered.\n */\n columnKey: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n\n /**\n * Whether the reorder handle should respond to touch events or not.\n */\n touchEnabled: _propTypes[\"default\"].bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: _propTypes[\"default\"].bool\n});\n\nvar _default = FixedDataTableColumnReorderHandle;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _redux = require('redux');\n\nvar _invariant = _interopRequireDefault(require('././stubs/invariant'));\n\nvar _pick = _interopRequireDefault(require('lodash/pick'));\n\nvar ActionTypes = _interopRequireWildcard(require('././actions/ActionTypes'));\n\nvar columnActions = _interopRequireWildcard(require('././actions/columnActions'));\n\nvar scrollActions = _interopRequireWildcard(require('././actions/scrollActions'));\n\nvar _FixedDataTable = _interopRequireDefault(require('././FixedDataTable'));\n\nvar _FixedDataTableStore = _interopRequireDefault(require('././FixedDataTableStore'));\n\nvar _Scrollbar = _interopRequireDefault(require('././plugins/Scrollbar'));\n\nvar _ScrollContainer = _interopRequireDefault(require('././plugins/ScrollContainer'));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar FixedDataTableContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableContainer, _React$Component);\n\n var _super = _createSuper(FixedDataTableContainer);\n\n function FixedDataTableContainer(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableContainer);\n\n _this = _super.call(this, props);\n _this.reduxStore = _FixedDataTableStore[\"default\"].get();\n _this.scrollActions = (0, _redux.bindActionCreators)(scrollActions, _this.reduxStore.dispatch);\n _this.columnActions = (0, _redux.bindActionCreators)(columnActions, _this.reduxStore.dispatch);\n\n _this.reduxStore.dispatch({\n type: ActionTypes.INITIALIZE,\n props: props\n });\n\n _this.unsubscribe = _this.reduxStore.subscribe(_this.onStoreUpdate.bind(_assertThisInitialized(_this)));\n _this.state = {\n boundState: FixedDataTableContainer.getBoundState(_this.reduxStore),\n // the state from the redux store\n reduxStore: _this.reduxStore,\n // put store instance in local state so that getDerivedStateFromProps can access it\n props: props // put props in local state so that getDerivedStateFromProps can access it\n\n };\n return _this;\n }\n\n _createClass(FixedDataTableContainer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n\n this.reduxStore = null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var fdt = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTable[\"default\"], _extends({}, this.props, this.state.boundState, {\n scrollActions: this.scrollActions,\n columnActions: this.columnActions\n })); // For backward compatibility, by default we render FDT-2 scrollbars\n\n\n if (this.props.defaultScrollbars) {\n return /*#__PURE__*/_react[\"default\"].createElement(_ScrollContainer[\"default\"], this.props, fdt);\n }\n\n return fdt;\n }\n }, {\n key: \"onStoreUpdate\",\n value: function onStoreUpdate() {\n var newBoundState = FixedDataTableContainer.getBoundState(this.reduxStore); // If onStoreUpdate was called through a prop change, then skip updating local state.\n // This is fine because getDerivedStateFromProps already calculates the new state.\n\n if (this.state.boundState.propsRevision !== newBoundState.propsRevision) {\n return;\n }\n\n this.setState({\n boundState: newBoundState\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, currentState) {\n (0, _invariant[\"default\"])(nextProps.height !== undefined || nextProps.maxHeight !== undefined, 'You must set either a height or a maxHeight'); // getDerivedStateFromProps is called for both prop and state updates.\n // If props are unchanged here, then there's no need to recalculate derived state.\n\n if (nextProps === currentState.props) {\n // return null to indicate that state should be unchanged\n return null;\n } // Props have changed, so update the redux store with the latest props\n\n\n currentState.reduxStore.dispatch({\n type: ActionTypes.PROP_CHANGE,\n newProps: nextProps,\n oldProps: currentState.props\n }); // return the new state from the updated redux store\n\n return {\n boundState: FixedDataTableContainer.getBoundState(currentState.reduxStore),\n props: nextProps\n };\n }\n }, {\n key: \"getBoundState\",\n value: function getBoundState(reduxStore) {\n var state = reduxStore.getState();\n var boundState = (0, _pick[\"default\"])(state, ['columnGroupProps', 'columnProps', 'columnReorderingData', 'columnResizingData', 'elementHeights', 'elementTemplates', 'firstRowIndex', 'endRowIndex', 'isColumnReordering', 'isColumnResizing', 'maxScrollX', 'maxScrollY', 'propsRevision', 'rows', 'rowOffsets', 'rowSettings', 'scrollContentHeight', 'scrollFlags', 'scrollX', 'scrollY', 'scrolling', 'scrollJumpedX', 'scrollJumpedY', 'tableSize']);\n return boundState;\n }\n }]);\n\n return FixedDataTableContainer;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableContainer, \"defaultProps\", {\n defaultScrollbars: true,\n scrollbarXHeight: _Scrollbar[\"default\"].SIZE,\n scrollbarYWidth: _Scrollbar[\"default\"].SIZE\n});\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(FixedDataTableContainer);\n\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableEventHelper\n * @typechecks\n */\n'use strict';\n/**\n * Gets the horizontal and vertical coordinates from a mouse or touch event.\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction getCoordinatesFromEvent(\n/*object*/\nevent)\n/*object*/\n{\n var x = 0;\n var y = 0;\n\n if (!event.clientX || !event.clientY) {\n if (event.touches && event.touches.length > 0) {\n var touch = event.touches[0];\n x = touch.clientX;\n y = touch.clientY;\n }\n } else {\n x = event.clientX;\n y = event.clientY;\n }\n\n return {\n x: x,\n y: y\n };\n}\n\nvar FixedDataTableEventHelper = {\n getCoordinatesFromEvent: getCoordinatesFromEvent\n};\nvar _default = FixedDataTableEventHelper;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRoot\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Table\", {\n enumerable: true,\n get: function get() {\n return _FixedDataTableContainer[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Cell\", {\n enumerable: true,\n get: function get() {\n return _FixedDataTableCellDefaultDeprecated[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DataCell\", {\n enumerable: true,\n get: function get() {\n return _FixedDataTableCellDefault[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Column\", {\n enumerable: true,\n get: function get() {\n return _FixedDataTableColumn[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ColumnGroup\", {\n enumerable: true,\n get: function get() {\n return _FixedDataTableColumnGroup[\"default\"];\n }\n});\nexports.version = void 0;\n\nvar _FixedDataTableContainer = _interopRequireDefault(require('././FixedDataTableContainer'));\n\nvar _FixedDataTableCellDefaultDeprecated = _interopRequireDefault(require('././FixedDataTableCellDefaultDeprecated'));\n\nvar _FixedDataTableCellDefault = _interopRequireDefault(require('././FixedDataTableCellDefault'));\n\nvar _FixedDataTableColumn = _interopRequireDefault(require('././FixedDataTableColumn'));\n\nvar _FixedDataTableColumnGroup = _interopRequireDefault(require('././FixedDataTableColumnGroup'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar version = '1.2.22';\nexports.version = version;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRow\n * @typechecks\n */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _cx = _interopRequireDefault(require('././vendor_upstream/stubs/cx'));\n\nvar _joinClasses = _interopRequireDefault(require('././vendor_upstream/core/joinClasses'));\n\nvar _widthHelper = require('././helper/widthHelper');\n\nvar _FixedDataTableCellGroup = _interopRequireDefault(require('././FixedDataTableCellGroup'));\n\nvar _FixedDataTableTranslateDOMPosition = _interopRequireDefault(require('././FixedDataTableTranslateDOMPosition'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// .fixedDataTableLayout/header border-bottom-width\nvar HEADER_BORDER_BOTTOM_WIDTH = 1;\n/**\n * Component that renders the row for .\n * This component should not be used directly by developer. Instead,\n * only should use the component internally.\n */\n\nvar FixedDataTableRowImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableRowImpl);\n\n function FixedDataTableRowImpl() {\n var _this;\n\n _classCallCheck(this, FixedDataTableRowImpl);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"mouseLeaveIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_getRowExpanded\", function (\n /*number*/\n subRowHeight)\n /*?object*/\n {\n if (_this.props.rowExpanded) {\n var rowExpandedProps = {\n rowIndex: _this.props.index,\n height: subRowHeight,\n width: _this.props.width\n };\n var rowExpanded;\n\n if ( /*#__PURE__*/_react[\"default\"].isValidElement(_this.props.rowExpanded)) {\n rowExpanded = /*#__PURE__*/_react[\"default\"].cloneElement(_this.props.rowExpanded, rowExpandedProps);\n } else if (typeof _this.props.rowExpanded === 'function') {\n rowExpanded = _this.props.rowExpanded(rowExpandedProps);\n }\n\n return rowExpanded;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderColumnsLeftShadow\", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = (0, _cx[\"default\"])({\n 'fixedDataTableRowLayout/fixedColumnsDivider': left > 0,\n 'fixedDataTableRowLayout/columnsShadow': _this.props.scrollLeft > 0,\n 'public/fixedDataTableRow/fixedColumnsDivider': left > 0,\n 'public/fixedDataTableRow/columnsShadow': _this.props.scrollLeft > 0\n });\n var dividerHeight = _this.props.cellGroupWrapperHeight ? _this.props.cellGroupWrapperHeight - HEADER_BORDER_BOTTOM_WIDTH : _this.props.height;\n var style = {\n left: left,\n height: dividerHeight\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = 'auto';\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderFixedRightColumnsShadow\", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = (0, _cx[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'fixedDataTableRowLayout/fixedColumnsDivider', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow', 'public/fixedDataTableRow/fixedColumnsDivider');\n var style = {\n height: _this.props.height,\n left: left\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = 'auto';\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderColumnsRightShadow\", function (\n /*number*/\n totalWidth)\n /*?object*/\n {\n if (Math.ceil(_this.props.scrollLeft + _this.props.width) < Math.floor(totalWidth)) {\n var className = (0, _cx[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow');\n var style = {\n height: _this.props.height\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className,\n style: style\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onClick\", function (\n /*object*/\n event) {\n _this.props.onClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onContextMenu\", function (\n /*object*/\n event) {\n _this.props.onContextMenu(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onDoubleClick\", function (\n /*object*/\n event) {\n _this.props.onDoubleClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseUp\", function (\n /*object*/\n event) {\n _this.props.onMouseUp(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseDown\", function (\n /*object*/\n event) {\n _this.props.onMouseDown(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseEnter\", function (\n /*object*/\n event) {\n /**\n * This is necessary so that onMouseLeave is fired with the initial\n * row index since this row could be updated with a different index\n * when scrolling.\n */\n _this.mouseLeaveIndex = _this.props.index;\n\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(event, _this.props.index);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseLeave\", function (\n /*object*/\n event) {\n if (_this.mouseLeaveIndex === null) {\n _this.mouseLeaveIndex = _this.props.index;\n }\n\n _this.props.onMouseLeave(event, _this.mouseLeaveIndex);\n\n _this.mouseLeaveIndex = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchStart\", function (\n /*object*/\n event) {\n _this.props.onTouchStart(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchEnd\", function (\n /*object*/\n event) {\n _this.props.onTouchEnd(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchMove\", function (\n /*object*/\n event) {\n _this.props.onTouchMove(event, _this.props.index);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableRowImpl, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row is not visible then no need to render it\n // change in visibility is handled by the parent\n\n\n if (!nextProps.visible) {\n return false;\n } // if row's visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // Only update the row if scrolling leads to a change in horizontal offsets.\n // The vertical offset is taken care of by the wrapper\n\n\n return !(this.props.index === nextProps.index && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var subRowHeight = this.props.subRowHeight || 0;\n var style = {\n width: this.props.width,\n height: this.props.height + subRowHeight\n };\n var className = (0, _cx[\"default\"])({\n 'fixedDataTableRowLayout/main': true,\n 'public/fixedDataTableRow/main': true,\n 'public/fixedDataTableRow/highlighted': this.props.index % 2 === 1,\n 'public/fixedDataTableRow/odd': this.props.index % 2 === 1,\n 'public/fixedDataTableRow/even': this.props.index % 2 === 0\n });\n var fixedColumnsWidth = (0, _widthHelper.sumPropWidths)(this.props.fixedColumns);\n\n var fixedColumns = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableCellGroup[\"default\"], {\n key: \"fixed_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL,\n isVisible: this.props.visible\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var fixedRightColumnsWidth = (0, _widthHelper.sumPropWidths)(this.props.fixedRightColumns);\n var scrollbarOffset = this.props.showScrollbarY ? this.props.scrollbarYWidth : 0;\n\n var fixedRightColumns = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableCellGroup[\"default\"], {\n key: \"fixed_right_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n offsetLeft: this.props.width - fixedRightColumnsWidth - scrollbarOffset,\n width: fixedRightColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL,\n isVisible: this.props.visible\n });\n\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n\n var scrollableColumns = /*#__PURE__*/_react[\"default\"].createElement(_FixedDataTableCellGroup[\"default\"], {\n key: \"scrollable_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n align: \"right\",\n left: this.props.scrollLeft,\n offsetLeft: fixedColumnsWidth,\n width: this.props.width - fixedColumnsWidth - fixedRightColumnsWidth - scrollbarOffset,\n zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL,\n isVisible: this.props.visible\n });\n\n var scrollableColumnsWidth = (0, _widthHelper.sumPropWidths)(this.props.scrollableColumns);\n\n var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth);\n\n var rowExpanded = this._getRowExpanded(subRowHeight);\n\n var rowExpandedStyle = {\n height: subRowHeight,\n top: this.props.height,\n width: this.props.width\n };\n var scrollbarSpacer = null;\n\n if (this.props.showScrollbarY) {\n var spacerStyles = {\n width: scrollbarOffset,\n height: this.props.height,\n // Since the box-sizing = border-box the border on the table is included in the width\n // so we need to account for the left and right border\n left: this.props.isRTL ? 2 : this.props.width - scrollbarOffset - 2\n };\n scrollbarSpacer = /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: spacerStyles,\n className: (0, _cx[\"default\"])('public/fixedDataTable/scrollbarSpacer')\n });\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n className: (0, _joinClasses[\"default\"])(className, this.props.className),\n role: 'row',\n \"aria-rowindex\": this.props.ariaRowIndex\n }, this.props.attributes, {\n onClick: this.props.onClick ? this._onClick : null,\n onContextMenu: this.props.onContextMenu ? this._onContextMenu : null,\n onDoubleClick: this.props.onDoubleClick ? this._onDoubleClick : null,\n onMouseDown: this.props.onMouseDown ? this._onMouseDown : null,\n onMouseUp: this.props.onMouseUp ? this._onMouseUp : null,\n onMouseEnter: this.props.onMouseEnter || this.props.onMouseLeave ? this._onMouseEnter : null,\n onMouseLeave: this.props.onMouseLeave ? this._onMouseLeave : null,\n onTouchStart: this.props.onTouchStart ? this._onTouchStart : null,\n onTouchEnd: this.props.onTouchEnd ? this._onTouchEnd : null,\n onTouchMove: this.props.onTouchMove ? this._onTouchMove : null,\n style: style\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableRowLayout/body')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _cx[\"default\"])('fixedDataTableRowLayout/rowExpanded'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableRowImpl, \"propTypes\", {\n isScrolling: _propTypes[\"default\"].bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: _propTypes[\"default\"].array.isRequired,\n\n /**\n * Array of for the fixed columns positioned at end of the table.\n */\n fixedRightColumns: _propTypes[\"default\"].array.isRequired,\n\n /**\n * Height of the row.\n */\n height: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: _propTypes[\"default\"].number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: _propTypes[\"default\"].number,\n\n /**\n * the row expanded.\n */\n rowExpanded: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].element, _propTypes[\"default\"].func]),\n\n /**\n * The row index.\n */\n index: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Array of data for the scrollable columns.\n */\n scrollableColumns: _propTypes[\"default\"].array.isRequired,\n\n /**\n * The distance between the left edge of the table and the leftmost portion\n * of the row currently visible in the table.\n */\n scrollLeft: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Width of the row.\n */\n width: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: _propTypes[\"default\"].func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: _propTypes[\"default\"].func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: _propTypes[\"default\"].func,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number leftOffset\n * @param number cellWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: _propTypes[\"default\"].func,\n isColumnReordering: _propTypes[\"default\"].bool,\n\n /**\n * Callback for when reorder handle (in FixedDataTableCell) is clicked\n * to initialize reordering. Please note this is only on the cells\n * in the header.\n * @param number|string columnKey\n * @param number cellWidth\n * @param number leftOffset\n * @param object event\n */\n onColumnReorder: _propTypes[\"default\"].func,\n\n /**\n * Callback for when a cell is moved while reordering.\n * @param number distance\n */\n onColumnReorderMove: _propTypes[\"default\"].func,\n\n /**\n * Callback for when the mouse is released to complete reordering.\n * @param number distance\n */\n onColumnReorderEnd: _propTypes[\"default\"].func,\n touchEnabled: _propTypes[\"default\"].bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: _propTypes[\"default\"].bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: _propTypes[\"default\"].number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: _propTypes[\"default\"].bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: _propTypes[\"default\"].object\n});\n\nvar FixedDataTableRow = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableRow);\n\n function FixedDataTableRow(props) {\n var _this2;\n\n _classCallCheck(this, FixedDataTableRow);\n\n _this2 = _super2.call(this, props);\n _this2._initialRender = true;\n return _this2;\n }\n\n _createClass(FixedDataTableRow, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row's visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if row is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // if offsets haven't changed for the same row while scrolling, then skip update\n\n\n return !(nextProps.isScrolling && this.props.index === nextProps.index && this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n rowProps = _objectWithoutProperties(_this$props, [\"offsetTop\", \"zIndex\"]);\n\n var style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: zIndex ? zIndex : 0,\n visibility: rowProps.visible ? 'visible' : 'hidden'\n };\n (0, _FixedDataTableTranslateDOMPosition[\"default\"])(style, 0, offsetTop, this._initialRender, this.props.isRTL);\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n className: (0, _cx[\"default\"])('fixedDataTableRowLayout/rowWrapper')\n }, /*#__PURE__*/_react[\"default\"].createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(_react[\"default\"].Component);\n\n_defineProperty(FixedDataTableRow, \"propTypes\", {\n isScrolling: _propTypes[\"default\"].bool,\n\n /**\n * Height of the row.\n */\n height: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: _propTypes[\"default\"].number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: _propTypes[\"default\"].number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: _propTypes[\"default\"].bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: _propTypes[\"default\"].number.isRequired\n});\n\nvar _default = FixedDataTableRow;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableStore\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _redux = require('redux');\n\nvar _reducers = _interopRequireDefault(require('././reducers'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n get: function get() {\n return (0, _redux.createStore)(_reducers[\"default\"]);\n }\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _BrowserSupportCore = _interopRequireDefault(require('././vendor_upstream/dom/BrowserSupportCore'));\n\nvar _translateDOMPositionXY = _interopRequireDefault(require('././vendor_upstream/dom/translateDOMPositionXY'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableTranslateDOMPosition\n * @typechecks\n */\nfunction FixedDataTableTranslateDOMPosition(\n/*object*/\nstyle,\n/*number*/\nx,\n/*number*/\ny) {\n var initialRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var isRTL = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n if (style.display === 'none') {\n return;\n }\n\n if (initialRender) {\n style.left = x + 'px';\n style.top = y + 'px';\n } else {\n if (_BrowserSupportCore[\"default\"].hasCSSTransforms()) {\n x *= isRTL ? -1 : 1;\n }\n\n (0, _translateDOMPositionXY[\"default\"])(style, x, y);\n }\n\n if (isRTL) {\n style.right = style.left;\n style.left = 'auto';\n }\n}\n\nvar _default = FixedDataTableTranslateDOMPosition;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is utility that handles touch events and calls provided touch\n * callback with correct frame rate.\n * Deceleration logic based on http://ariya.ofilabs.com/2013/11/javascript-kinetic-scrolling-part-2.html\n *\n * @providesModule ReactTouchHandler\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _emptyFunction = _interopRequireDefault(require('././vendor_upstream/core/emptyFunction'));\n\nvar _requestAnimationFramePolyfill = _interopRequireDefault(require('././vendor_upstream/core/requestAnimationFramePolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar MOVE_AMPLITUDE = 1.6;\nvar DECELERATION_AMPLITUDE = 1.6;\nvar DECELERATION_FACTOR = 325;\nvar TRACKER_TIMEOUT = 100;\n\nvar ReactTouchHandler = /*#__PURE__*/function () {\n /**\n * onTouchScroll is the callback that will be called with right frame rate if\n * any touch events happened\n * onTouchScroll should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactTouchHandler(\n /*function*/\n onTouchScroll,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactTouchHandler);\n\n // The animation frame id for the drag scroll\n this._dragAnimationId = null; // The interval id for tracking the drag velocity\n\n this._trackerId = null; // Used to track the drag scroll delta while waiting for an animation frame\n\n this._deltaX = 0;\n this._deltaY = 0; // The last touch we processed while dragging. Used to compute the delta and velocity above\n\n this._lastTouchX = 0;\n this._lastTouchY = 0; // Used to track a moving average of the scroll velocity while dragging\n\n this._velocityX = 0;\n this._velocityY = 0; // An accummulated drag scroll delta used to calculate velocity\n\n this._accumulatedDeltaX = 0;\n this._accumulatedDeltaY = 0; // Timestamp from the last interval frame we used to track velocity\n\n this._lastFrameTimestamp = Date.now(); // Timestamp from the last animation frame we used to autoscroll after drag stop\n\n this._autoScrollTimestamp = Date.now();\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? _emptyFunction[\"default\"].thatReturnsTrue : _emptyFunction[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? _emptyFunction[\"default\"].thatReturnsTrue : _emptyFunction[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onTouchScrollCallback = onTouchScroll;\n this._didTouchMove = this._didTouchMove.bind(this);\n this._track = this._track.bind(this);\n this._autoScroll = this._autoScroll.bind(this);\n this._startAutoScroll = this._startAutoScroll.bind(this);\n this.onTouchStart = this.onTouchStart.bind(this);\n this.onTouchEnd = this.onTouchEnd.bind(this);\n this.onTouchMove = this.onTouchMove.bind(this);\n this.onTouchCancel = this.onTouchCancel.bind(this);\n }\n\n _createClass(ReactTouchHandler, [{\n key: \"onTouchStart\",\n value: function onTouchStart(\n /*object*/\n event) {\n // Start tracking drag delta for scrolling\n this._lastTouchX = event.touches[0].pageX;\n this._lastTouchY = event.touches[0].pageY; // Reset our velocity and intermediate data used to compute velocity\n\n this._velocityX = 0;\n this._velocityY = 0;\n this._accumulatedDeltaX = 0;\n this._accumulatedDeltaY = 0;\n this._lastFrameTimestamp = Date.now(); // Setup interval for tracking velocity\n\n clearInterval(this._trackerId);\n this._trackerId = setInterval(this._track, TRACKER_TIMEOUT);\n\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(\n /*object*/\n event) {\n // Stop tracking velocity\n clearInterval(this._trackerId);\n this._trackerId = null; // Initialize decelerating autoscroll on drag stop\n\n (0, _requestAnimationFramePolyfill[\"default\"])(this._startAutoScroll);\n\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n }\n }, {\n key: \"onTouchCancel\",\n value: function onTouchCancel(\n /*object*/\n event) {\n // Stop tracking velocity\n clearInterval(this._trackerId);\n this._trackerId = null;\n\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var moveX = event.touches[0].pageX;\n var moveY = event.touches[0].pageY; // Compute delta scrolled since last drag\n // Mobile, scrolling is inverted\n\n this._deltaX = MOVE_AMPLITUDE * (this._lastTouchX - moveX);\n this._deltaY = MOVE_AMPLITUDE * (this._lastTouchY - moveY);\n\n var handleScrollX = this._handleScrollX(this._deltaX, this._deltaY);\n\n var handleScrollY = this._handleScrollY(this._deltaY, this._deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n } // If we can handle scroll update last touch for computing delta\n\n\n if (handleScrollX) {\n this._lastTouchX = moveX;\n } else {\n this._deltaX = 0;\n }\n\n if (handleScrollY) {\n this._lastTouchY = moveY;\n } else {\n this._deltaY = 0;\n } // The event will result in a scroll to the table, so there's no need to also let the parent containers scroll\n\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n } // Ensure minimum delta magnitude is met to avoid jitter\n\n\n var changed = false;\n\n if (Math.abs(this._deltaX) > 2 || Math.abs(this._deltaY) > 2) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n } // Request animation frame to trigger scroll of computed delta\n\n\n if (changed === true && this._dragAnimationId === null) {\n this._dragAnimationId = (0, _requestAnimationFramePolyfill[\"default\"])(this._didTouchMove);\n }\n }\n /**\n * Fire scroll callback based on computed drag delta.\n * Also track accummulated delta so we can calculate velocity\n */\n\n }, {\n key: \"_didTouchMove\",\n value: function _didTouchMove() {\n this._dragAnimationId = null;\n\n this._onTouchScrollCallback(this._deltaX, this._deltaY);\n\n this._accumulatedDeltaX += this._deltaX;\n this._accumulatedDeltaY += this._deltaY;\n this._deltaX = 0;\n this._deltaY = 0;\n }\n /**\n * Compute velocity based on a weighted average of drag over last 100 ms and\n * previous velocity. Combining into a moving average results in a smoother scroll.\n */\n\n }, {\n key: \"_track\",\n value: function _track() {\n var now = Date.now();\n var elapsed = now - this._lastFrameTimestamp;\n var oldVelocityX = this._velocityX;\n var oldVelocityY = this._velocityY; // We compute velocity using a weighted average of the current velocity and the previous velocity\n // If the previous velocity is 0, put the full weight on the last 100 ms\n\n var weight = 0.8;\n\n if (elapsed < TRACKER_TIMEOUT) {\n weight *= elapsed / TRACKER_TIMEOUT;\n }\n\n if (oldVelocityX === 0 && oldVelocityY === 0) {\n weight = 1;\n } // Formula for computing weighted average of velocity\n\n\n this._velocityX = weight * (TRACKER_TIMEOUT * this._accumulatedDeltaX / (1 + elapsed));\n\n if (weight < 1) {\n this._velocityX += (1 - weight) * oldVelocityX;\n }\n\n this._velocityY = weight * (TRACKER_TIMEOUT * this._accumulatedDeltaY / (1 + elapsed));\n\n if (weight < 1) {\n this._velocityY += (1 - weight) * oldVelocityY;\n }\n\n this._accumulatedDeltaX = 0;\n this._accumulatedDeltaY = 0;\n this._lastFrameTimestamp = now;\n }\n /**\n * To kick off deceleration / momentum scrolling,\n * handle any scrolling from a drag which was waiting for an animation frame\n * Then update our velocity\n * Finally start the momentum scrolling handler (autoScroll)\n */\n\n }, {\n key: \"_startAutoScroll\",\n value: function _startAutoScroll() {\n this._autoScrollTimestamp = Date.now();\n\n if (this._deltaX > 0 || this.deltaY > 0) {\n this._didTouchMove();\n }\n\n this._track();\n\n this._autoScroll();\n }\n /**\n * Compute a scroll delta with an exponential decay based on time elapsed since drag was released.\n * This is called recursively on animation frames until the delta is below a threshold (5 pixels)\n */\n\n }, {\n key: \"_autoScroll\",\n value: function _autoScroll() {\n var elapsed = Date.now() - this._autoScrollTimestamp;\n\n var factor = DECELERATION_AMPLITUDE * Math.exp(-elapsed / DECELERATION_FACTOR);\n var deltaX = factor * this._velocityX;\n var deltaY = factor * this._velocityY;\n\n if (Math.abs(deltaX) <= 5 || !this._handleScrollX(deltaX, deltaY)) {\n deltaX = 0;\n }\n\n if (Math.abs(deltaY) <= 5 || !this._handleScrollY(deltaY, deltaX)) {\n deltaY = 0;\n }\n\n if (deltaX !== 0 || deltaY !== 0) {\n this._onTouchScrollCallback(deltaX, deltaY);\n\n (0, _requestAnimationFramePolyfill[\"default\"])(this._autoScroll);\n }\n }\n }]);\n\n return ReactTouchHandler;\n}();\n\nvar _default = ReactTouchHandler;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * @providesModule ActionTypes\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SCROLL_TO_Y = exports.SCROLL_TO_X = exports.SCROLL_END = exports.SCROLL_START = exports.PROP_CHANGE = exports.INITIALIZE = exports.COLUMN_RESIZE = exports.COLUMN_REORDER_MOVE = exports.COLUMN_REORDER_END = exports.COLUMN_REORDER_START = void 0;\nvar COLUMN_REORDER_START = 'COLUMN_REORDER_START';\nexports.COLUMN_REORDER_START = COLUMN_REORDER_START;\nvar COLUMN_REORDER_END = 'COLUMN_REORDER_END';\nexports.COLUMN_REORDER_END = COLUMN_REORDER_END;\nvar COLUMN_REORDER_MOVE = 'COLUMN_REORDER_MOVE';\nexports.COLUMN_REORDER_MOVE = COLUMN_REORDER_MOVE;\nvar COLUMN_RESIZE = 'COLUMN_RESIZE';\nexports.COLUMN_RESIZE = COLUMN_RESIZE;\nvar INITIALIZE = 'INITIALIZE';\nexports.INITIALIZE = INITIALIZE;\nvar PROP_CHANGE = 'PROP_CHANGE';\nexports.PROP_CHANGE = PROP_CHANGE;\nvar SCROLL_START = 'SCROLL_START';\nexports.SCROLL_START = SCROLL_START;\nvar SCROLL_END = 'SCROLL_END';\nexports.SCROLL_END = SCROLL_END;\nvar SCROLL_TO_X = 'SCROLL_TO_X';\nexports.SCROLL_TO_X = SCROLL_TO_X;\nvar SCROLL_TO_Y = 'SCROLL_TO_Y';\nexports.SCROLL_TO_Y = SCROLL_TO_Y;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * @providesModule columnActions\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeColumn = exports.moveColumnReorder = exports.stopColumnReorder = exports.startColumnReorder = void 0;\n\nvar _ActionTypes = require('././ActionTypes');\n\n/**\n * Initiates column reordering\n *\n * @param {{scrollStart: number, columnKey: string, with: number, left: number}} reorderData\n */\nvar startColumnReorder = function startColumnReorder(reorderData) {\n return {\n type: _ActionTypes.COLUMN_REORDER_START,\n reorderData: reorderData\n };\n};\n/**\n * Stops column reordering\n */\n\n\nexports.startColumnReorder = startColumnReorder;\n\nvar stopColumnReorder = function stopColumnReorder() {\n return {\n type: _ActionTypes.COLUMN_REORDER_END\n };\n};\n/**\n * Stops column reordering\n *\n * @param {number} deltaX\n */\n\n\nexports.stopColumnReorder = stopColumnReorder;\n\nvar moveColumnReorder = function moveColumnReorder(deltaX) {\n return {\n type: _ActionTypes.COLUMN_REORDER_MOVE,\n deltaX: deltaX\n };\n};\n/**\n * Fires a resize on column\n *\n * @param {!Object} reorderData\n */\n\n\nexports.moveColumnReorder = moveColumnReorder;\n\nvar resizeColumn = function resizeColumn(resizeData) {\n return {\n type: _ActionTypes.COLUMN_RESIZE,\n resizeData: resizeData\n };\n};\n\nexports.resizeColumn = resizeColumn;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * @providesModule scrollActions\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stopScroll = exports.startScroll = exports.scrollToY = exports.scrollToX = void 0;\n\nvar _ActionTypes = require('././ActionTypes');\n\n/**\n * Scrolls the table horizontally to position\n *\n * @param {number} scrollX\n */\nvar scrollToX = function scrollToX(scrollX) {\n return {\n type: _ActionTypes.SCROLL_TO_X,\n scrollX: scrollX\n };\n};\n/**\n * Scrolls the table vertically to position\n *\n * @param {number} scrollY\n */\n\n\nexports.scrollToX = scrollToX;\n\nvar scrollToY = function scrollToY(scrollY) {\n return {\n type: _ActionTypes.SCROLL_TO_Y,\n scrollY: scrollY\n };\n};\n/**\n * Fire when user starts scrolling\n */\n\n\nexports.scrollToY = scrollToY;\n\nvar startScroll = function startScroll() {\n return {\n type: _ActionTypes.SCROLL_START\n };\n};\n/**\n * Fire when user starts scrolling\n */\n\n\nexports.startScroll = startScroll;\n\nvar stopScroll = function stopScroll() {\n return {\n type: _ActionTypes.SCROLL_END\n };\n};\n\nexports.stopScroll = stopScroll;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule convertColumnElementsToData\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _forEach = _interopRequireDefault(require('lodash/forEach'));\n\nvar _invariant = _interopRequireDefault(require('./../stubs/invariant'));\n\nvar _map = _interopRequireDefault(require('lodash/map'));\n\nvar _pick = _interopRequireDefault(require('lodash/pick'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extractProps(column) {\n return (0, _pick[\"default\"])(column.props, ['align', 'allowCellsRecycling', 'cellClassName', 'columnKey', 'flexGrow', 'fixed', 'fixedRight', 'maxWidth', 'minWidth', 'isReorderable', 'isResizable', 'pureRendering', 'width']);\n}\n\nfunction _extractTemplates(elementTemplates, columnElement) {\n elementTemplates.cell.push(columnElement.props.cell);\n elementTemplates.footer.push(columnElement.props.footer);\n elementTemplates.header.push(columnElement.props.header);\n}\n/**\n * Converts React column / column group elements into props and cell rendering templates\n */\n\n\nfunction convertColumnElementsToData(childComponents) {\n var children = [];\n\n _react[\"default\"].Children.forEach(childComponents, function (child, index) {\n if (child == null) {\n return;\n }\n\n (0, _invariant[\"default\"])(child.type.__TableColumnGroup__ || child.type.__TableColumn__, 'child type should be or ');\n children.push(child);\n });\n\n var elementTemplates = {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n };\n var columnProps = [];\n var hasGroupHeader = children.length && children[0].type.__TableColumnGroup__;\n\n if (hasGroupHeader) {\n var columnGroupProps = (0, _map[\"default\"])(children, _extractProps);\n (0, _forEach[\"default\"])(children, function (columnGroupElement, index) {\n elementTemplates.groupHeader.push(columnGroupElement.props.header);\n\n _react[\"default\"].Children.forEach(columnGroupElement.props.children, function (child) {\n var column = _extractProps(child);\n\n column.groupIdx = index;\n columnProps.push(column);\n\n _extractTemplates(elementTemplates, child);\n });\n });\n return {\n columnGroupProps: columnGroupProps,\n columnProps: columnProps,\n elementTemplates: elementTemplates,\n useGroupHeader: true\n };\n } // Use a default column group\n\n\n (0, _forEach[\"default\"])(children, function (child) {\n columnProps.push(_extractProps(child));\n\n _extractTemplates(elementTemplates, child);\n });\n return {\n columnGroupProps: [],\n columnProps: columnProps,\n elementTemplates: elementTemplates,\n useGroupHeader: false\n };\n}\n\nvar _default = convertColumnElementsToData;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqualSelector\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _reselect = require('reselect');\n\nvar _shallowEqual = _interopRequireDefault(require('./../vendor_upstream/core/shallowEqual'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = (0, _reselect.createSelectorCreator)(_reselect.defaultMemoize, _shallowEqual[\"default\"]);\n\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule widthHelper\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sumPropWidths = sumPropWidths;\nexports.getTotalWidth = getTotalWidth;\nexports.getTotalFlexGrow = getTotalFlexGrow;\n\nvar _reduce = _interopRequireDefault(require('lodash/reduce'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction sumPropWidths(columns) {\n return (0, _reduce[\"default\"])(columns, function (accum, column) {\n return accum + column.props.width;\n }, 0);\n}\n\nfunction getTotalWidth(columns) {\n return (0, _reduce[\"default\"])(columns, function (accum, column) {\n return accum + column.width;\n }, 0);\n}\n\nfunction getTotalFlexGrow(columns) {\n return (0, _reduce[\"default\"])(columns, function (accum, column) {\n return accum + (column.flexGrow || 0);\n }, 0);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _isEmpty = _interopRequireDefault(require('lodash/isEmpty'));\n\nvar _cx = _interopRequireDefault(require('./../vendor_upstream/stubs/cx'));\n\nvar _joinClasses = _interopRequireDefault(require('./../vendor_upstream/core/joinClasses'));\n\nvar _Scrollbar = _interopRequireDefault(require('././Scrollbar'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollContainer, _React$Component);\n\n var _super = _createSuper(ScrollContainer);\n\n function ScrollContainer() {\n var _this;\n\n _classCallCheck(this, ScrollContainer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollBarsUpdate\", function (args) {\n _this.setState(args);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onVerticalScroll\", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToY !== undefined) {\n _this.state.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onHorizontalScroll\", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToX !== undefined) {\n _this.state.scrollToX(scrollPos);\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollContainer, [{\n key: \"render\",\n value: function render() {\n var scrollbarY = !(0, _isEmpty[\"default\"])(this.state) && /*#__PURE__*/_react[\"default\"].createElement(_Scrollbar[\"default\"], {\n size: this.state.viewportHeight,\n contentSize: this.state.contentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: this.state.scrollbarYOffsetTop,\n position: this.state.scrollY,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n\n var scrollbarX = !(0, _isEmpty[\"default\"])(this.state) && /*#__PURE__*/_react[\"default\"].createElement(HorizontalScrollbar, {\n contentSize: this.state.contentWidth,\n offset: this.state.scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: this.state.scrollX,\n size: this.state.viewportWidth,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.children, {\n onScrollBarsUpdate: this._onScrollBarsUpdate,\n scrollbarX: scrollbarX,\n scrollbarY: scrollbarY\n });\n }\n }]);\n\n return ScrollContainer;\n}(_react[\"default\"].Component);\n\nvar HorizontalScrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n var _super2 = _createSuper(HorizontalScrollbar);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(HorizontalScrollbar, [{\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offset = _this$props.offset,\n size = _this$props.size;\n var outerContainerStyle = {\n height: _Scrollbar[\"default\"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: _Scrollbar[\"default\"].SIZE,\n overflow: 'hidden',\n width: size,\n top: offset\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: (0, _joinClasses[\"default\"])((0, _cx[\"default\"])('public/fixedDataTable/horizontalScrollbar')),\n style: outerContainerStyle\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: innerContainerStyle\n }, /*#__PURE__*/_react[\"default\"].createElement(_Scrollbar[\"default\"], _extends({}, this.props, {\n isOpaque: true,\n orientation: \"horizontal\",\n offset: undefined\n }))));\n }\n }]);\n\n return HorizontalScrollbar;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(HorizontalScrollbar, \"propTypes\", {\n contentSize: _propTypes[\"default\"].number.isRequired,\n offset: _propTypes[\"default\"].number.isRequired,\n onScroll: _propTypes[\"default\"].func.isRequired,\n position: _propTypes[\"default\"].number.isRequired,\n size: _propTypes[\"default\"].number.isRequired,\n isRTL: _propTypes[\"default\"].bool\n});\n\nvar _default = ScrollContainer;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require('react'));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _cx = _interopRequireDefault(require('./../vendor_upstream/stubs/cx'));\n\nvar _emptyFunction = _interopRequireDefault(require('./../vendor_upstream/core/emptyFunction'));\n\nvar _Keys = _interopRequireDefault(require('./../vendor_upstream/core/Keys'));\n\nvar _ReactWheelHandler = _interopRequireDefault(require('./../vendor_upstream/dom/ReactWheelHandler'));\n\nvar _DOMMouseMoveTracker = _interopRequireDefault(require('./../vendor_upstream/dom/DOMMouseMoveTracker'));\n\nvar _cssVar = _interopRequireDefault(require('./../stubs/cssVar'));\n\nvar _FixedDataTableTranslateDOMPosition = _interopRequireDefault(require('./../FixedDataTableTranslateDOMPosition'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt((0, _cssVar[\"default\"])('--scrollbar-face-margin'), 10);\nvar FACE_MARGIN_2 = FACE_MARGIN * 2;\nvar FACE_SIZE_MIN = 30;\nvar KEYBOARD_SCROLL_AMOUNT = 40;\nvar _lastScrolledScrollbar = null;\n\nvar Scrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n var _super = _createSuper(Scrollbar);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"_onRefFace\", function (ref) {\n return _this._faceRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onRefRoot\", function (ref) {\n return _this._rootRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"scrollBy\", function (\n /*number*/\n delta) {\n _this._onWheel(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation === 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation !== 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleChange\", function (\n /*number*/\n delta)\n /*boolean*/\n {\n var nextState = _this._calculateState(_this.state.position + delta, _this.props.size, _this.props.contentSize, _this.props.orientation);\n\n return nextState.position !== _this.state.position;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_calculateState\", function (\n /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation)\n /*object*/\n {\n var clampedSize = Math.max(1, size);\n\n if (contentSize <= clampedSize) {\n return UNSCROLLABLE_STATE;\n }\n\n var stateKey = \"\".concat(position, \"_\").concat(clampedSize, \"_\").concat(contentSize, \"_\").concat(orientation);\n\n if (_this._stateKey === stateKey) {\n return _this._stateForKey;\n } // There are two types of positions here.\n // 1) Phisical position: changed by mouse / keyboard\n // 2) Logical position: changed by props.\n // The logical position will be kept as as internal state and the `render()`\n // function will translate it into physical position to render.\n\n\n var isHorizontal = orientation === 'horizontal';\n var scale = clampedSize / contentSize;\n var faceSize = clampedSize * scale;\n\n if (faceSize < FACE_SIZE_MIN) {\n scale = (clampedSize - FACE_SIZE_MIN) / (contentSize - clampedSize);\n faceSize = FACE_SIZE_MIN;\n }\n\n var scrollable = true;\n var maxPosition = contentSize - clampedSize;\n\n if (position < 0) {\n position = 0;\n } else if (position > maxPosition) {\n position = maxPosition;\n }\n\n var isDragging = _this._mouseMoveTracker ? _this._mouseMoveTracker.isDragging() : false; // This function should only return flat values that can be compared quiclky\n // by `ReactComponentWithPureRenderMixin`.\n\n var state = {\n faceSize: faceSize,\n isDragging: isDragging,\n isHorizontal: isHorizontal,\n position: position,\n scale: scale,\n scrollable: scrollable\n }; // cache the state for later use.\n\n _this._stateKey = stateKey;\n _this._stateForKey = state;\n return state;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onWheelY\", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onWheelX\", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onWheel\", function (\n /*number*/\n delta) {\n var props = _this.props; // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFrame` to avoid over-updating.\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseDown\", function (\n /*object*/\n event) {\n /** @type {object} */\n var nextState;\n\n if (event.target !== _this._faceRef) {\n // Both `offsetX` and `layerX` are non-standard DOM property but they are\n // magically available for browsers somehow.\n var nativeEvent = event.nativeEvent;\n var position = _this.state.isHorizontal ? nativeEvent.offsetX || nativeEvent.layerX || _this.getTouchX(nativeEvent) : nativeEvent.offsetY || nativeEvent.layerY || _this.getTouchY(nativeEvent); // MouseDown on the scroll-track directly, move the center of the\n // scroll-face to the mouse position.\n\n var props = _this.props;\n position /= _this.state.scale;\n nextState = _this._calculateState(position - _this.state.faceSize * 0.5 / _this.state.scale, props.size, props.contentSize, props.orientation);\n } else {\n nextState = {};\n }\n\n nextState.focused = true;\n\n _this._setNextState(nextState);\n\n _this._mouseMoveTracker.captureMouseMoves(event); // Focus the node so it may receive keyboard event.\n\n\n _this._rootRef.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchCancel\", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchEnd\", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchMove\", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onTouchStart\", function (\n /*object*/\n event) {\n event.stopPropagation();\n\n _this._onMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseMove\", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var props = _this.props;\n var delta = _this.state.isHorizontal ? deltaX * (_this.props.isRTL ? -1 : 1) : deltaY;\n delta /= _this.state.scale;\n /**\n * NOTE (pradeep): Starting from React 18, React batches multiple state updates together for improving performance.\n *\n * While this is generally good, the legacy code here (for whatever reason) expects state updates to be\n * unbatched.\n * This leads to https://github.com/schrodinger/fixed-data-table-2/issues/668, where the scrollbar doesn't\n * move as fast as the user's cursor when they drag the scrollbar thumb.\n * This causes the cursor and the scrollbar to go out of sync, which is a bit frustrating.\n *\n * I'm fixing this by using ReactDOM's flushSync API to make sure that the state update is flushed immediately.\n *\n * TODO (pradeep): While the fix works, we should really be relying on automatic batching for performance.\n *\n * (Read more on automatic batching by React here: https://github.com/reactwg/react-18/discussions/21)\n */\n\n var flushSync = _reactDom[\"default\"].flushSync || function (fn) {\n return fn();\n }; // ReactDOM.flushSync doesn't exist in older versions of React\n\n\n flushSync(function () {\n return _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseMoveEnd\", function () {\n _this._nextState = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", function (\n /*object*/\n event) {\n var keyCode = event.keyCode;\n\n if (keyCode === _Keys[\"default\"].TAB) {\n // Let focus move off the scrollbar.\n return;\n }\n\n var distance = KEYBOARD_SCROLL_AMOUNT;\n var direction = 0;\n\n if (_this.state.isHorizontal) {\n switch (keyCode) {\n case _Keys[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _Keys[\"default\"].LEFT:\n direction = -1;\n break;\n\n case _Keys[\"default\"].RIGHT:\n direction = 1;\n break;\n\n default:\n return;\n }\n }\n\n if (!_this.state.isHorizontal) {\n switch (keyCode) {\n case _Keys[\"default\"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case _Keys[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _Keys[\"default\"].UP:\n direction = -1;\n break;\n\n case _Keys[\"default\"].DOWN:\n direction = 1;\n break;\n\n case _Keys[\"default\"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case _Keys[\"default\"].PAGE_DOWN:\n direction = 1;\n distance = _this.props.size;\n break;\n\n default:\n return;\n }\n }\n\n event.preventDefault();\n var props = _this.props;\n\n _this._setNextState(_this._calculateState(_this.state.position + distance * direction, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onFocus\", function () {\n _this.setState({\n focused: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onBlur\", function () {\n _this.setState({\n focused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_blur\", function () {\n var el = _reactDom[\"default\"].findDOMNode(_assertThisInitialized(_this));\n\n if (!el) {\n return;\n }\n\n try {\n _this._onBlur();\n\n el.blur();\n } catch (oops) {// pass\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getTouchX\", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientX - e.target.getBoundingClientRect().x);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getTouchY\", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientY - e.target.getBoundingClientRect().y);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setNextState\", function (\n /*object*/\n nextState,\n /*?object*/\n props) {\n props = props || _this.props;\n var controlledPosition = props.position;\n var willScroll = _this.state.position !== nextState.position;\n\n if (controlledPosition === undefined) {\n var callback = willScroll ? _this._didScroll : undefined;\n\n _this.setState(nextState, callback);\n } else if (controlledPosition === nextState.position) {\n _this.setState(nextState);\n } else {\n // Scrolling is controlled. Don't update the state and let the owner\n // to update the scrollbar instead.\n if (nextState.position !== undefined && nextState.position !== _this.state.position) {\n _this.props.onScroll(nextState.position);\n }\n\n return;\n }\n\n if (willScroll && _lastScrolledScrollbar !== _assertThisInitialized(_this)) {\n _lastScrolledScrollbar && _lastScrolledScrollbar._blur();\n _lastScrolledScrollbar = _assertThisInitialized(_this);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function () {\n _this.props.onScroll(_this.state.position);\n });\n\n _this.state = _this._calculateState(_props.position || _props.defaultPosition || 0, _props.size, _props.contentSize, _props.orientation);\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(Scrollbar, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var controlledPosition = this.props.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, this.props.size, this.props.contentSize, this.props.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, this.props.size, this.props.contentSize, this.props.orientation), this.props);\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*?object*/\n {\n if (!this.state.scrollable) {\n return null;\n }\n\n var size = this.props.size;\n /** @type {React.CSSProperties} */\n\n var mainStyle;\n /** @type {React.CSSProperties} */\n\n var faceStyle;\n var isHorizontal = this.state.isHorizontal;\n var isVertical = !isHorizontal;\n var isActive = this.state.focused || this.state.isDragging;\n var faceSize = this.state.faceSize;\n var isOpaque = this.props.isOpaque;\n var verticalTop = this.props.verticalTop || 0;\n var mainClassName = (0, _cx[\"default\"])({\n 'ScrollbarLayout/main': true,\n 'ScrollbarLayout/mainVertical': isVertical,\n 'ScrollbarLayout/mainHorizontal': isHorizontal,\n 'public/Scrollbar/main': true,\n 'public/Scrollbar/mainOpaque': isOpaque,\n 'public/Scrollbar/mainActive': isActive\n });\n var faceClassName = (0, _cx[\"default\"])({\n 'ScrollbarLayout/face': true,\n 'ScrollbarLayout/faceHorizontal': isHorizontal,\n 'ScrollbarLayout/faceVertical': isVertical,\n 'public/Scrollbar/faceActive': isActive,\n 'public/Scrollbar/face': true\n });\n var position = this.state.position * this.state.scale + FACE_MARGIN;\n\n if (isHorizontal) {\n mainStyle = {\n width: size\n };\n faceStyle = {\n width: faceSize - FACE_MARGIN_2,\n top: 0,\n bottom: 0\n };\n (0, _FixedDataTableTranslateDOMPosition[\"default\"])(faceStyle, position, 0, this._initialRender, this.props.isRTL);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n\n if (this.props.isRTL) {\n mainStyle.left = mainStyle.right || 0;\n mainStyle.right = 'auto';\n }\n\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n (0, _FixedDataTableTranslateDOMPosition[\"default\"])(faceStyle, 0, position, this._initialRender, this.props.isRTL);\n faceStyle.left = 0;\n faceStyle.right = 0;\n }\n\n mainStyle.touchAction = 'none';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === 'gray') {\n mainStyle.backgroundColor = (0, _cssVar[\"default\"])('--fbui-desktop-background-light');\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n onKeyDown: this._onKeyDown,\n onMouseDown: this._onMouseDown,\n onTouchCancel: this._onTouchCancel,\n onTouchEnd: this._onTouchEnd,\n onTouchMove: this._onTouchMove,\n onTouchStart: this._onTouchStart,\n className: mainClassName,\n style: mainStyle,\n ref: this._onRefRoot\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var isHorizontal = this.props.orientation === 'horizontal';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new _ReactWheelHandler[\"default\"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._rootRef && this._rootRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new _DOMMouseMoveTracker[\"default\"](this._onMouseMove, this._onMouseMoveEnd, document.documentElement, this.props.touchEnabled);\n\n if (this.props.position !== undefined && this.state.position !== this.props.position) {\n this._didScroll();\n }\n\n this._initialRender = false;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._rootRef && this._rootRef.removeEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._nextState = null;\n\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n }\n }]);\n\n return Scrollbar;\n}(_react[\"default\"].PureComponent);\n\n_defineProperty(Scrollbar, \"propTypes\", {\n contentSize: _propTypes[\"default\"].number.isRequired,\n defaultPosition: _propTypes[\"default\"].number,\n isOpaque: _propTypes[\"default\"].bool,\n orientation: _propTypes[\"default\"].oneOf(['vertical', 'horizontal']),\n onScroll: _propTypes[\"default\"].func,\n position: _propTypes[\"default\"].number,\n size: _propTypes[\"default\"].number.isRequired,\n trackColor: _propTypes[\"default\"].oneOf(['gray']),\n touchEnabled: _propTypes[\"default\"].bool,\n zIndex: _propTypes[\"default\"].number,\n verticalTop: _propTypes[\"default\"].number,\n isRTL: _propTypes[\"default\"].bool\n});\n\n_defineProperty(Scrollbar, \"defaultProps\",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: _emptyFunction[\"default\"],\n orientation: 'vertical',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt((0, _cssVar[\"default\"])('--scrollbar-size'), 10);\nScrollbar.OFFSET = 1;\nvar _default = Scrollbar;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule columnStateHelper\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _isNil = _interopRequireDefault(require('lodash/isNil'));\n\nvar _clamp = _interopRequireDefault(require('lodash/clamp'));\n\nvar _emptyFunction = _interopRequireDefault(require('./../vendor_upstream/core/emptyFunction'));\n\nvar _columnWidths5 = _interopRequireDefault(require('./../selectors/columnWidths'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar DRAG_SCROLL_SPEED = 15;\nvar DRAG_SCROLL_BUFFER = 100;\n/**\n * Initialize scrollX state\n * TODO (jordan) Audit this method for cases where deep values are not properly cloned\n *\n * @param {!Object} state\n * @param {!Object} props\n * @param {Object} oldProps\n * @return {!Object}\n */\n\nfunction initialize(state, props, oldProps) {\n var scrollLeft = props.scrollLeft,\n scrollToColumn = props.scrollToColumn;\n var columnResizingData = state.columnResizingData,\n isColumnResizing = state.isColumnResizing,\n scrollX = state.scrollX;\n\n if (scrollLeft !== undefined && (!oldProps || scrollLeft !== oldProps.scrollLeft)) {\n scrollX = scrollLeft;\n }\n\n scrollX = scrollTo(state, props, oldProps.scrollToColumn, scrollX);\n\n var _columnWidths = (0, _columnWidths5[\"default\"])(state),\n maxScrollX = _columnWidths.maxScrollX;\n\n scrollX = (0, _clamp[\"default\"])(scrollX, 0, maxScrollX); // isColumnResizing should be overwritten by value from props if available\n\n isColumnResizing = props.isColumnResizing !== undefined ? props.isColumnResizing : isColumnResizing;\n columnResizingData = isColumnResizing ? columnResizingData : {};\n return _extends({}, state, {\n columnResizingData: columnResizingData,\n isColumnResizing: isColumnResizing,\n maxScrollX: maxScrollX,\n scrollX: scrollX\n });\n}\n/**\n * @param {!Object} state\n * @param {{\n * scrollToColumn: number,\n * width: number,\n * }} props\n * @param {number} oldScrollToColumn\n * @param {number} scrollX\n * @return {number} The new scrollX\n */\n\n\nfunction scrollTo(state, props, oldScrollToColumn, scrollX) {\n var scrollToColumn = props.scrollToColumn;\n\n if ((0, _isNil[\"default\"])(scrollToColumn)) {\n return scrollX;\n }\n\n var _columnWidths2 = (0, _columnWidths5[\"default\"])(state),\n availableScrollWidth = _columnWidths2.availableScrollWidth,\n fixedColumns = _columnWidths2.fixedColumns,\n scrollableColumns = _columnWidths2.scrollableColumns;\n\n var fixedColumnsCount = fixedColumns.length;\n var scrollableColumnsCount = scrollableColumns.length;\n var noScrollableColumns = scrollableColumnsCount === 0;\n var scrollToUnchanged = scrollToColumn === oldScrollToColumn;\n var selectedColumnFixed = scrollToColumn < fixedColumnsCount;\n var selectedColumnFixedRight = scrollToColumn >= fixedColumnsCount + scrollableColumnsCount;\n\n if (scrollToUnchanged || selectedColumnFixed || selectedColumnFixedRight || noScrollableColumns) {\n return scrollX;\n } // Convert column index (0 indexed) to scrollable index (0 indexed)\n // and clamp to max scrollable index\n\n\n var clampedColumnIndex = Math.min(scrollToColumn - fixedColumnsCount, scrollableColumns.length - 1); // Compute the width of all columns to the left of the column\n\n var previousWidth = 0;\n\n for (var columnIdx = 0; columnIdx < clampedColumnIndex; ++columnIdx) {\n previousWidth += scrollableColumns[columnIdx].width;\n } // Get width of specified column\n\n\n var selectedColumnWidth = scrollableColumns[clampedColumnIndex].width; // Compute the scroll position which sets the column on the right of the viewport\n // Must scroll at least far enough for end of column (previousWidth + selectedColumnWidth)\n // to be in viewport.\n\n var minScrollPosition = previousWidth + selectedColumnWidth - availableScrollWidth; // Handle offscreen to the left\n // If scrolled less than minimum amount, scroll to minimum amount\n // so column on right of viewport\n\n if (scrollX < minScrollPosition) {\n return minScrollPosition;\n } // Handle offscreen to the right\n // If scrolled more than previous columns, at least part of column will be offscreen to left\n // Scroll so column is flush with left edge of viewport\n\n\n if (scrollX > previousWidth) {\n return previousWidth;\n }\n\n return scrollX;\n}\n/**\n * This is called when a cell that is in the header of a column has its\n * resizer knob clicked on. It displays the resizer and puts in the correct\n * location on the table.\n */\n\n\nfunction resizeColumn(state, resizeData) {\n var cellMinWidth = resizeData.cellMinWidth,\n cellMaxWidth = resizeData.cellMaxWidth,\n cellWidth = resizeData.cellWidth,\n columnKey = resizeData.columnKey,\n combinedWidth = resizeData.combinedWidth,\n clientX = resizeData.clientX,\n clientY = resizeData.clientY,\n leftOffset = resizeData.leftOffset;\n return _extends({}, state, {\n isColumnResizing: true,\n columnResizingData: {\n left: leftOffset + combinedWidth - cellWidth,\n width: cellWidth,\n minWidth: cellMinWidth,\n maxWidth: cellMaxWidth,\n initialEvent: {\n clientX: clientX,\n clientY: clientY,\n preventDefault: _emptyFunction[\"default\"]\n },\n key: columnKey\n }\n });\n}\n\nfunction reorderColumn(state, reorderData) {\n var columnKey = reorderData.columnKey,\n left = reorderData.left,\n scrollStart = reorderData.scrollStart,\n width = reorderData.width;\n\n var _columnWidths3 = (0, _columnWidths5[\"default\"])(state),\n fixedColumns = _columnWidths3.fixedColumns;\n\n var isFixed = fixedColumns.some(function (column) {\n return column.columnKey === columnKey;\n });\n return _extends({}, state, {\n isColumnReordering: true,\n columnReorderingData: {\n cancelReorder: false,\n dragDistance: 0,\n isFixed: isFixed,\n scrollStart: scrollStart,\n columnKey: columnKey,\n columnWidth: width,\n originalLeft: left,\n columnBefore: undefined,\n columnAfter: undefined\n }\n });\n}\n\nfunction reorderColumnMove(state, deltaX) {\n var _state$columnReorderi = state.columnReorderingData,\n isFixed = _state$columnReorderi.isFixed,\n originalLeft = _state$columnReorderi.originalLeft,\n scrollStart = _state$columnReorderi.scrollStart;\n var maxScrollX = state.maxScrollX,\n scrollX = state.scrollX;\n\n if (!isFixed) {\n // Relative dragX position on scroll\n var dragX = originalLeft - scrollStart + deltaX;\n\n var _columnWidths4 = (0, _columnWidths5[\"default\"])(state),\n availableScrollWidth = _columnWidths4.availableScrollWidth;\n\n deltaX += scrollX - scrollStart; // Scroll the table left or right if we drag near the edges of the table\n\n if (dragX > availableScrollWidth - DRAG_SCROLL_BUFFER) {\n scrollX = Math.min(scrollX + DRAG_SCROLL_SPEED, maxScrollX);\n } else if (dragX <= DRAG_SCROLL_BUFFER) {\n scrollX = Math.max(scrollX - DRAG_SCROLL_SPEED, 0);\n }\n } // NOTE (jordan) Need to clone this object when use pureRendering\n\n\n var reorderingData = _extends({}, state.columnReorderingData, {\n dragDistance: deltaX,\n columnBefore: undefined,\n columnAfter: undefined\n });\n\n return _extends({}, state, {\n scrollX: scrollX,\n columnReorderingData: reorderingData\n });\n}\n\nvar _default = {\n initialize: initialize,\n reorderColumn: reorderColumn,\n reorderColumnMove: reorderColumnMove,\n resizeColumn: resizeColumn\n};\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedRows\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = computeRenderedRows;\n\nvar _clamp = _interopRequireDefault(require('lodash/clamp'));\n\nvar _roughHeights = _interopRequireDefault(require('./../selectors/roughHeights'));\n\nvar _scrollbarsVisible = _interopRequireDefault(require('./../selectors/scrollbarsVisible'));\n\nvar _tableHeights = _interopRequireDefault(require('./../selectors/tableHeights'));\n\nvar _updateRowHeight = _interopRequireDefault(require('././updateRowHeight'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Returns data about the rows to render\n * rows is a map of rowIndexes to render to their heights\n * firstRowIndex & firstRowOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\nfunction computeRenderedRows(state, scrollAnchor) {\n var newState = _extends({}, state);\n\n var rowRange = calculateRenderedRowRange(newState, scrollAnchor);\n var rowSettings = newState.rowSettings,\n scrollContentHeight = newState.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n var _tableHeightsSelector = (0, _tableHeights[\"default\"])(newState),\n bodyHeight = _tableHeightsSelector.bodyHeight;\n\n var maxScrollY = scrollContentHeight - bodyHeight;\n var firstRowOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of rows shown, but no scrollbar to scroll up to the first rows.\n\n if (maxScrollY === 0) {\n if (rowRange.firstViewportIdx > 0) {\n rowRange = calculateRenderedRowRange(newState, {\n firstOffset: 0,\n lastIndex: rowsCount - 1\n });\n }\n\n firstRowOffset = 0;\n } else {\n firstRowOffset = rowRange.firstOffset;\n }\n\n var firstRowIndex = rowRange.firstViewportIdx;\n var endRowIndex = rowRange.endViewportIdx;\n computeRenderedRowOffsets(newState, rowRange, state.scrolling);\n var scrollY = 0;\n\n if (rowsCount > 0) {\n scrollY = newState.rowOffsets[rowRange.firstViewportIdx] - firstRowOffset;\n }\n\n scrollY = (0, _clamp[\"default\"])(scrollY, 0, maxScrollY);\n return _extends(newState, {\n firstRowIndex: firstRowIndex,\n firstRowOffset: firstRowOffset,\n endRowIndex: endRowIndex,\n maxScrollY: maxScrollY,\n scrollY: scrollY\n });\n}\n/**\n * Determine the range of rows to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport rows are based on their height and the viewport height\n * We use the scrollAnchor to determine what either the first or last row\n * will be, as well as the offset.\n *\n * NOTE (jordan) This alters state so it shouldn't be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\n\nfunction calculateRenderedRowRange(state, scrollAnchor) {\n var _roughHeightsSelector = (0, _roughHeights[\"default\"])(state),\n bufferRowCount = _roughHeightsSelector.bufferRowCount,\n maxAvailableHeight = _roughHeightsSelector.maxAvailableHeight;\n\n var rowsCount = state.rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our rowsCount,\n // treat it as if the last row is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= rowsCount || lastIndex >= rowsCount) {\n lastIndex = rowsCount - 1;\n } // Walk the viewport until filled with rows\n // If lastIndex is set, walk backward so that row is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalHeight = firstOffset;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalHeight = 0;\n } // Loop to walk the viewport until we've touched enough rows to fill its height\n\n\n var rowIdx = startIdx;\n var endIdx = rowIdx;\n\n while (rowIdx < rowsCount && rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += (0, _updateRowHeight[\"default\"])(state, rowIdx);\n endIdx = rowIdx;\n rowIdx += step;\n }\n /* Handle the case where rows have shrunk and there's not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier rows as needed and act as if we've scrolled to the last row.\n */\n\n\n var forceScrollToLastRow = false;\n\n if (totalHeight < maxAvailableHeight && rowIdx === rowsCount && lastIndex === undefined) {\n forceScrollToLastRow = true;\n rowIdx = firstIndex - 1;\n\n while (rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += (0, _updateRowHeight[\"default\"])(state, rowIdx);\n startIdx = rowIdx;\n --rowIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - bufferRowCount, 0);\n\n for (rowIdx = firstBufferIdx; rowIdx < firstViewportIdx; rowIdx++) {\n (0, _updateRowHeight[\"default\"])(state, rowIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + bufferRowCount, rowsCount);\n\n for (rowIdx = endViewportIdx; rowIdx < endBufferIdx; rowIdx++) {\n (0, _updateRowHeight[\"default\"])(state, rowIdx);\n }\n\n var _scrollbarsVisibleSel = (0, _scrollbarsVisible[\"default\"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n if (lastIndex !== undefined || forceScrollToLastRow) {\n // Calculate offset needed to position last row at bottom of viewport\n // This should be negative and represent how far the first row needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don't currently support scrolling the last row into view with an offset.\n firstOffset = firstOffset + Math.min(availableHeight - totalHeight, 0); // Handle a case where the offset puts the first row fully offscreen\n // This can happen if availableHeight & maxAvailableHeight are different\n\n var storedHeights = state.storedHeights;\n\n if (-1 * firstOffset >= storedHeights[firstViewportIdx]) {\n firstViewportIdx += 1;\n firstOffset += storedHeights[firstViewportIdx];\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the rows to render and compute the height offsets and\n * positions in the row buffer.\n *\n * NOTE (jordan) This alters state so it shouldn't be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} rowRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedRowOffsets(state, rowRange, viewportOnly) {\n var rowBufferSet = state.rowBufferSet,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n storedHeights = state.storedHeights;\n var endBufferIdx = rowRange.endBufferIdx,\n endViewportIdx = rowRange.endViewportIdx,\n firstBufferIdx = rowRange.firstBufferIdx,\n firstViewportIdx = rowRange.firstViewportIdx;\n var renderedRowsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedRowsCount === 0) {\n state.rowOffsets = {};\n state.rows = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var rows = []; // state.rows\n\n var rowOffsets = {}; // state.rowOffsets\n // incremental way for calculating rowOffset\n\n var runningOffset = rowOffsetIntervalTree.sumUntil(startIdx); // compute row index and offsets for every rows inside the buffer\n\n for (var rowIdx = startIdx; rowIdx < endIdx; rowIdx++) {\n // Update the offset for rendering the row\n rowOffsets[rowIdx] = runningOffset;\n runningOffset += storedHeights[rowIdx]; // Get position for the viewport row\n\n var rowPosition = addRowToBuffer(rowIdx, rowBufferSet, startIdx, endIdx, renderedRowsCount);\n rows[rowPosition] = rowIdx;\n } // now we modify the state with the newly calculated rows and offsets\n\n\n state.rows = rows;\n state.rowOffsets = rowOffsets;\n}\n/**\n * Add the row to the buffer set if it doesn't exist.\n * If addition isn't possible due to max buffer size, it'll replace an existing element outside the given range.\n *\n * @param {!number} rowIdx\n * @param {!number} rowBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the row after being added to the buffer set\n * @private\n */\n\n\nfunction addRowToBuffer(rowIdx, rowBufferSet, startRange, endRange, maxBufferSize) {\n // Check if row already has a position in the buffer\n var rowPosition = rowBufferSet.getValuePosition(rowIdx); // Request a position in the buffer through eviction of another row\n\n if (rowPosition === null && rowBufferSet.getSize() >= maxBufferSize) {\n rowPosition = rowBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n rowIdx);\n }\n\n if (rowPosition === null) {\n rowPosition = rowBufferSet.getNewPositionForValue(rowIdx);\n }\n\n return rowPosition;\n}","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reducers\n */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _pick = _interopRequireDefault(require('lodash/pick'));\n\nvar _IntegerBufferSet = _interopRequireDefault(require('./../vendor_upstream/struct/IntegerBufferSet'));\n\nvar _PrefixIntervalTree = _interopRequireDefault(require('./../vendor_upstream/struct/PrefixIntervalTree'));\n\nvar _shallowEqual = _interopRequireDefault(require('./../vendor_upstream/core/shallowEqual'));\n\nvar _convertColumnElementsToData = _interopRequireDefault(require('./../helper/convertColumnElementsToData'));\n\nvar ActionTypes = _interopRequireWildcard(require('./../actions/ActionTypes'));\n\nvar _scrollAnchor3 = require('././scrollAnchor');\n\nvar _columnStateHelper = _interopRequireDefault(require('././columnStateHelper'));\n\nvar _computeRenderedRows = _interopRequireDefault(require('././computeRenderedRows'));\n\nvar _Scrollbar = _interopRequireDefault(require('./../plugins/Scrollbar'));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Returns the default initial state for the redux store.\n * This must be a brand new, independent object for each table instance\n * or issues may occur due to multiple tables sharing data.\n *\n * @return {!Object}\n */\nfunction getInitialState() {\n return {\n /*\n * Input state set from props\n */\n columnProps: [],\n columnGroupProps: [],\n elementTemplates: {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n },\n elementHeights: {\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n propsRevision: null,\n rowSettings: {\n bufferRowCount: undefined,\n rowAttributesGetter: undefined,\n rowHeight: 0,\n rowHeightGetter: function rowHeightGetter() {\n return 0;\n },\n rowsCount: 0,\n subRowHeight: 0,\n subRowHeightGetter: function subRowHeightGetter() {\n return 0;\n }\n },\n scrollFlags: {\n overflowX: 'auto',\n overflowY: 'auto',\n showScrollbarX: true,\n showScrollbarY: true\n },\n tableSize: {\n height: undefined,\n maxHeight: 0,\n ownerHeight: undefined,\n useMaxHeight: false,\n width: 0\n },\n\n /*\n * Output state passed as props to the the rendered FixedDataTable\n * NOTE (jordan) rows may contain undefineds if we don't need all the buffer positions\n */\n columnReorderingData: {},\n columnResizingData: {},\n firstRowIndex: 0,\n firstRowOffset: 0,\n isColumnReordering: false,\n isColumnResizing: false,\n maxScrollX: 0,\n maxScrollY: 0,\n rowOffsets: {},\n rows: [],\n // rowsToRender\n scrollContentHeight: 0,\n scrollX: 0,\n scrollbarXHeight: _Scrollbar[\"default\"].SIZE,\n scrollY: 0,\n scrollbarYWidth: _Scrollbar[\"default\"].SIZE,\n scrolling: false,\n\n /*\n * Internal state only used by this file\n * NOTE (jordan) internal state is altered in place\n * so don't trust it for redux history or immutability checks\n * TODO (jordan) investigate if we want to move this to local or scoped state\n */\n rowBufferSet: new _IntegerBufferSet[\"default\"](),\n storedHeights: [],\n rowOffsetIntervalTree: null // PrefixIntervalTree\n\n };\n}\n\nfunction reducers() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitialState();\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case ActionTypes.INITIALIZE:\n {\n var props = action.props;\n var newState = setStateFromProps(state, props);\n newState = initializeRowHeightsAndOffsets(newState);\n var scrollAnchor = (0, _scrollAnchor3.getScrollAnchor)(newState, props);\n newState = (0, _computeRenderedRows[\"default\"])(newState, scrollAnchor);\n return _columnStateHelper[\"default\"].initialize(newState, props, {});\n }\n\n case ActionTypes.PROP_CHANGE:\n {\n var newProps = action.newProps,\n oldProps = action.oldProps;\n\n var _newState = setStateFromProps(state, newProps);\n\n if (oldProps.rowsCount !== newProps.rowsCount || oldProps.rowHeight !== newProps.rowHeight || oldProps.subRowHeight !== newProps.subRowHeight) {\n _newState = initializeRowHeightsAndOffsets(_newState);\n }\n\n if (oldProps.rowsCount !== newProps.rowsCount) {\n // NOTE (jordan) bad practice to modify state directly, but okay since\n // we know setStateFromProps clones state internally\n _newState.rowBufferSet = new _IntegerBufferSet[\"default\"]();\n }\n\n var _scrollAnchor = (0, _scrollAnchor3.getScrollAnchor)(_newState, newProps, oldProps); // If anything has changed in state, update our rendered rows\n\n\n if (!(0, _shallowEqual[\"default\"])(state, _newState) || _scrollAnchor.changed) {\n _newState = (0, _computeRenderedRows[\"default\"])(_newState, _scrollAnchor);\n }\n\n _newState = _columnStateHelper[\"default\"].initialize(_newState, newProps, oldProps); // if scroll values have changed, then we're scrolling!\n\n if (_newState.scrollX !== state.scrollX || _newState.scrollY !== state.scrollY) {\n _newState.scrolling = _newState.scrolling || true;\n } // TODO REDUX_MIGRATION solve w/ evil-diff\n // TODO (jordan) check if relevant props unchanged and\n // children column widths and flex widths are unchanged\n // alternatively shallow diff and reconcile props\n\n\n return _newState;\n }\n\n case ActionTypes.SCROLL_END:\n {\n var _newState2 = _extends({}, state, {\n scrolling: false\n });\n\n var previousScrollAnchor = {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: state.lastIndex\n };\n return (0, _computeRenderedRows[\"default\"])(_newState2, previousScrollAnchor);\n }\n\n case ActionTypes.SCROLL_TO_Y:\n {\n var scrollY = action.scrollY;\n\n var _newState3 = _extends({}, state, {\n scrolling: true\n });\n\n var _scrollAnchor2 = (0, _scrollAnchor3.scrollTo)(_newState3, scrollY);\n\n return (0, _computeRenderedRows[\"default\"])(_newState3, _scrollAnchor2);\n }\n\n case ActionTypes.COLUMN_RESIZE:\n {\n var resizeData = action.resizeData;\n return _columnStateHelper[\"default\"].resizeColumn(state, resizeData);\n }\n\n case ActionTypes.COLUMN_REORDER_START:\n {\n var reorderData = action.reorderData;\n return _columnStateHelper[\"default\"].reorderColumn(state, reorderData);\n }\n\n case ActionTypes.COLUMN_REORDER_END:\n {\n return _extends({}, state, {\n isColumnReordering: false,\n columnReorderingData: {}\n });\n }\n\n case ActionTypes.COLUMN_REORDER_MOVE:\n {\n var deltaX = action.deltaX;\n return _columnStateHelper[\"default\"].reorderColumnMove(state, deltaX);\n }\n\n case ActionTypes.SCROLL_TO_X:\n {\n var scrollX = action.scrollX;\n return _extends({}, state, {\n scrolling: true,\n scrollX: scrollX\n });\n }\n\n default:\n {\n return state;\n }\n }\n}\n/**\n * Initialize row heights (storedHeights) & offsets based on the default rowHeight\n *\n * @param {!Object} state\n * @private\n */\n\n\nfunction initializeRowHeightsAndOffsets(state) {\n var _state$rowSettings = state.rowSettings,\n rowHeight = _state$rowSettings.rowHeight,\n rowsCount = _state$rowSettings.rowsCount,\n subRowHeight = _state$rowSettings.subRowHeight;\n var defaultFullRowHeight = rowHeight + subRowHeight;\n\n var rowOffsetIntervalTree = _PrefixIntervalTree[\"default\"].uniform(rowsCount, defaultFullRowHeight);\n\n var scrollContentHeight = rowsCount * defaultFullRowHeight;\n var storedHeights = new Array(rowsCount);\n\n for (var idx = 0; idx < rowsCount; idx++) {\n storedHeights[idx] = defaultFullRowHeight;\n }\n\n return _extends({}, state, {\n rowOffsetIntervalTree: rowOffsetIntervalTree,\n scrollContentHeight: scrollContentHeight,\n storedHeights: storedHeights\n });\n}\n/**\n * @param {!Object} state\n * @param {!Object} props\n * @return {!Object}\n * @private\n */\n\n\nfunction setStateFromProps(state, props) {\n var _convertColumnElement = (0, _convertColumnElementsToData[\"default\"])(props.children),\n columnGroupProps = _convertColumnElement.columnGroupProps,\n columnProps = _convertColumnElement.columnProps,\n elementTemplates = _convertColumnElement.elementTemplates,\n useGroupHeader = _convertColumnElement.useGroupHeader;\n\n var newState = _extends({}, state, {\n columnGroupProps: columnGroupProps,\n columnProps: columnProps,\n elementTemplates: elementTemplates,\n propsRevision: state.propsRevision + 1\n });\n\n newState.elementHeights = _extends({}, newState.elementHeights, (0, _pick[\"default\"])(props, ['cellGroupWrapperHeight', 'footerHeight', 'groupHeaderHeight', 'headerHeight']));\n\n if (!useGroupHeader) {\n newState.elementHeights.groupHeaderHeight = 0;\n }\n\n newState.rowSettings = _extends({}, newState.rowSettings, (0, _pick[\"default\"])(props, ['bufferRowCount', 'rowHeight', 'rowsCount', 'subRowHeight']));\n var _newState$rowSettings = newState.rowSettings,\n rowHeight = _newState$rowSettings.rowHeight,\n subRowHeight = _newState$rowSettings.subRowHeight;\n\n newState.rowSettings.rowHeightGetter = props.rowHeightGetter || function () {\n return rowHeight;\n };\n\n newState.rowSettings.subRowHeightGetter = props.subRowHeightGetter || function () {\n return subRowHeight || 0;\n };\n\n newState.rowSettings.rowAttributesGetter = props.rowAttributesGetter;\n newState.scrollFlags = _extends({}, newState.scrollFlags, (0, _pick[\"default\"])(props, ['overflowX', 'overflowY', 'showScrollbarX', 'showScrollbarY']));\n newState.tableSize = _extends({}, newState.tableSize, (0, _pick[\"default\"])(props, ['height', 'maxHeight', 'ownerHeight', 'width']));\n newState.tableSize.useMaxHeight = newState.tableSize.height === undefined;\n newState.scrollbarXHeight = props.scrollbarXHeight;\n newState.scrollbarYWidth = props.scrollbarYWidth;\n return newState;\n}\n\nvar _default = reducers;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule scrollAnchor\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getScrollAnchor = getScrollAnchor;\nexports.scrollTo = scrollTo;\n\nvar _clamp = _interopRequireDefault(require('./../vendor_upstream/core/clamp'));\n\nvar _scrollbarsVisible = _interopRequireDefault(require('./../selectors/scrollbarsVisible'));\n\nvar _updateRowHeight = _interopRequireDefault(require('././updateRowHeight'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Get the anchor for scrolling.\n * This will either be the first row's index and an offset, or the last row's index.\n * We also pass a flag indicating if the anchor has changed from the state\n *\n * @param {!Object} state\n * @param {!Object} newProps\n * @param {!Object} [oldProps]\n * @return {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * changed: boolean,\n * }}\n */\nfunction getScrollAnchor(state, newProps, oldProps) {\n if (newProps.scrollToRow !== undefined && newProps.scrollToRow !== null && (!oldProps || newProps.scrollToRow !== oldProps.scrollToRow)) {\n return scrollToRow(state, newProps.scrollToRow);\n }\n\n if (newProps.scrollTop !== undefined && newProps.scrollTop !== null && (!oldProps || newProps.scrollTop !== oldProps.scrollTop)) {\n return scrollTo(state, newProps.scrollTop);\n }\n\n return {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: undefined,\n changed: false\n };\n}\n/**\n * Scroll to a specific position in the grid\n *\n * @param {!Object} state\n * @param {number} scrollY\n * @return {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * changed: boolean,\n * }}\n */\n\n\nfunction scrollTo(state, scrollY) {\n var _scrollbarsVisibleSel = (0, _scrollbarsVisible[\"default\"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n var rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n rowSettings = state.rowSettings,\n scrollContentHeight = state.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n firstIndex: 0,\n firstOffset: 0,\n lastIndex: undefined,\n changed: state.firstRowIndex !== 0 || state.firstRowOffset !== 0\n };\n }\n\n var firstIndex = 0;\n var firstOffset = 0;\n var lastIndex = undefined;\n\n if (scrollY <= 0) {// Use defaults (from above) to scroll to first row\n } else if (scrollY >= scrollContentHeight - availableHeight) {\n // Scroll to the last row\n firstIndex = undefined;\n lastIndex = rowsCount - 1;\n } else {\n // Mark the row which will appear first in the viewport\n // We use this as our \"marker\" when scrolling even if updating rowOffsets\n // leads to it not being different from the scrollY specified\n var newRowIdx = rowOffsetIntervalTree.greatestLowerBound(scrollY);\n firstIndex = (0, _clamp[\"default\"])(newRowIdx, 0, Math.max(rowsCount - 1, 0)); // Record how far into the first row we should scroll\n // firstOffset is a negative value representing how much larger scrollY is\n // than the scroll position of the first row in the viewport\n\n var firstRowPosition = rowOffsetIntervalTree.sumUntil(firstIndex);\n firstOffset = firstRowPosition - scrollY;\n }\n\n return {\n firstIndex: firstIndex,\n firstOffset: firstOffset,\n lastIndex: lastIndex,\n // NOTE (jordan) This changed heuristic may give false positives,\n // but that's fine since it's used as a filter to computeRenderedRows\n changed: true\n };\n}\n/**\n * Scroll a specified row into the viewport\n * If the row is before the viewport, it will become the first row in the viewport\n * If the row is after the viewport, it will become the last row in the viewport\n * If the row is in the viewport, do nothing\n *\n * @param {!Object} state\n * @param {number} rowIndex\n * @return {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * changed: boolean,\n * }}\n * @private\n */\n\n\nfunction scrollToRow(state, rowIndex) {\n var _scrollbarsVisibleSel2 = (0, _scrollbarsVisible[\"default\"])(state),\n availableHeight = _scrollbarsVisibleSel2.availableHeight;\n\n var rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n rowSettings = state.rowSettings,\n storedHeights = state.storedHeights,\n scrollY = state.scrollY;\n var rowsCount = rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n firstIndex: 0,\n firstOffset: 0,\n lastIndex: undefined,\n changed: state.firstRowIndex !== 0 || state.firstRowOffset !== 0\n };\n }\n\n rowIndex = (0, _clamp[\"default\"])(rowIndex, 0, Math.max(rowsCount - 1, 0));\n (0, _updateRowHeight[\"default\"])(state, rowIndex);\n var rowBegin = rowOffsetIntervalTree.sumUntil(rowIndex);\n var rowEnd = rowBegin + storedHeights[rowIndex];\n var firstIndex = rowIndex;\n var lastIndex = undefined;\n\n if (rowBegin < scrollY) {// If before the viewport, set as the first row in the viewport\n // Uses defaults (from above)\n } else if (scrollY + availableHeight < rowEnd) {\n // If after the viewport, set as the last row in the viewport\n firstIndex = undefined;\n lastIndex = rowIndex;\n } else {\n // If already in the viewport, do nothing.\n return {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: undefined,\n changed: false\n };\n }\n\n return {\n firstIndex: firstIndex,\n firstOffset: 0,\n lastIndex: lastIndex,\n changed: true\n };\n}","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule updateRowHeight\n */\n'use strict';\n/**\n * Update our cached row height for a specific index\n * based on the value from rowHeightGetter\n *\n * NOTE (jordan) This alters state so it shouldn't be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {number} rowIdx\n * @return {number} The new row height\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = updateRowHeight;\n\nfunction updateRowHeight(state, rowIdx) {\n var storedHeights = state.storedHeights,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n rowSettings = state.rowSettings;\n var rowHeightGetter = rowSettings.rowHeightGetter,\n subRowHeightGetter = rowSettings.subRowHeightGetter;\n var newHeight = rowHeightGetter(rowIdx) + subRowHeightGetter(rowIdx);\n var oldHeight = storedHeights[rowIdx];\n\n if (newHeight !== oldHeight) {\n rowOffsetIntervalTree.set(rowIdx, newHeight);\n storedHeights[rowIdx] = newHeight;\n state.scrollContentHeight += newHeight - oldHeight;\n }\n\n return storedHeights[rowIdx];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ariaAttributes\n */\n\n/**\n * Calculate the aria attributes for the rows and the grid.\n *\n * @param {number} rowsCount\n * @param {boolean} useGroupHeader\n * @param {boolean} useFooter\n * @return {{\n * ariaGroupHeaderIndex: number,\n * ariaHeaderIndex: number,\n * ariaFooterIndex: number,\n * ariaRowCount: number,\n * ariaRowIndexOffset: number\n * }}\n */\nfunction calculateAriaAttributes(rowsCount, useGroupHeader, useFooter) {\n // first we calculate the default attribute values (without assuming group header or footer exists)\n var ariaGroupHeaderIndex = 1;\n var ariaHeaderIndex = 1;\n var ariaFooterIndex = rowsCount + 2;\n var ariaRowCount = rowsCount + 1; // offset to add to aria-rowindex (note that aria-rowindex is 1-indexed based, and since\n // we also need to add 1 for the header, the base offset will be 2)\n\n var ariaRowIndexOffset = 2; // if group header exists, then increase the indices and offsets by 1\n\n if (useGroupHeader) {\n ariaHeaderIndex++;\n ariaRowCount++;\n ariaFooterIndex++;\n ariaRowIndexOffset++;\n } // if footer exists, then row count increases by 1\n\n\n if (useFooter) {\n ariaRowCount++;\n }\n\n return {\n ariaGroupHeaderIndex: ariaGroupHeaderIndex,\n ariaHeaderIndex: ariaHeaderIndex,\n ariaFooterIndex: ariaFooterIndex,\n ariaRowCount: ariaRowCount,\n ariaRowIndexOffset: ariaRowIndexOffset\n };\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([function (state) {\n return state.rowsCount;\n}, function (state) {\n return state.groupHeaderHeight > 0;\n}, function (state) {\n return state.footerHeight > 0;\n}], calculateAriaAttributes);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _forEach = _interopRequireDefault(require('lodash/forEach'));\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nvar _columnWidths = _interopRequireDefault(require('././columnWidths'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule columnTemplates\n */\n\n/**\n * @typedef {{\n * props: !Object,\n * template: React.ReactElement,\n * }}\n */\nvar cellDetails;\n/**\n * @typedef {{\n * cell: !Array.,\n * footer: !Array.,\n * header: !Array.,\n * }}\n */\n\nvar columnDetails;\n/**\n * Lists of cell templates & component props for\n * the fixed and scrollable columns and column groups\n *\n * @param {{\n * columnGroupProps: !Array.,\n * columnProps: !Array.,\n * }} columnWidths\n * @param {{\n * cell: !Array.,\n * footer: !Array.,\n * groupHeader: !Array.,\n * header: !Array.,\n * }} elementTemplates\n * @return {{\n * fixedColumnGroups: !Array.,\n * fixedRightColumnGroups: !Array.,\n * scrollableColumnGroups: !Array.,\n * fixedColumns: !Array.,\n * fixedRightColumns: !Array.,\n * scrollableColumns: !Array.,\n * }}\n */\n\nfunction columnTemplates(columnWidths, elementTemplates) {\n var columnGroupProps = columnWidths.columnGroupProps,\n columnProps = columnWidths.columnProps; // Ugly transforms to extract data into a row consumable format.\n // TODO (jordan) figure out if this can efficiently be merged with\n // the result of convertColumnElementsToData.\n\n var fixedColumnGroups = [];\n var fixedRightColumnGroups = [];\n var scrollableColumnGroups = [];\n (0, _forEach[\"default\"])(columnGroupProps, function (columnGroup, index) {\n var groupData = {\n props: columnGroup,\n template: elementTemplates.groupHeader[index]\n };\n\n if (columnGroup.fixed) {\n fixedColumnGroups.push(groupData);\n } else if (columnGroup.fixedRight) {\n fixedRightColumnGroups.push(groupData);\n } else {\n scrollableColumnGroups.push(groupData);\n }\n });\n var fixedColumns = {\n cell: [],\n header: [],\n footer: []\n };\n var fixedRightColumns = {\n cell: [],\n header: [],\n footer: []\n };\n var scrollableColumns = {\n cell: [],\n header: [],\n footer: []\n };\n (0, _forEach[\"default\"])(columnProps, function (column, index) {\n var columnContainer = scrollableColumns;\n\n if (column.fixed) {\n columnContainer = fixedColumns;\n } else if (column.fixedRight) {\n columnContainer = fixedRightColumns;\n }\n\n columnContainer.cell.push({\n props: column,\n template: elementTemplates.cell[index]\n });\n columnContainer.header.push({\n props: column,\n template: elementTemplates.header[index]\n });\n columnContainer.footer.push({\n props: column,\n template: elementTemplates.footer[index]\n });\n });\n return {\n fixedColumnGroups: fixedColumnGroups,\n fixedColumns: fixedColumns,\n fixedRightColumnGroups: fixedRightColumnGroups,\n fixedRightColumns: fixedRightColumns,\n scrollableColumnGroups: scrollableColumnGroups,\n scrollableColumns: scrollableColumns\n };\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([function (state) {\n return (0, _columnWidths[\"default\"])(state);\n}, function (state) {\n return state.elementTemplates;\n}], columnTemplates);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _forEach = _interopRequireDefault(require('lodash/forEach'));\n\nvar _map = _interopRequireDefault(require('lodash/map'));\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nvar _widthHelper = require('./../helper/widthHelper');\n\nvar _scrollbarsVisible = _interopRequireDefault(require('././scrollbarsVisible'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @typedef {{\n * fixed: boolean,\n * fixedRight: boolean,\n * flexGrow: number,\n * width: number,\n * groupIdx?: number\n * }} columnDefinition\n */\n\n/**\n * @param {!Array.} columnGroupProps\n * @param {!Array.} columnProps\n * @param {boolean} scrollEnabledY\n * @param {number} width\n * @return {{\n * columnGroupProps: !Array.,\n * columnProps: !Array.,\n * availableScrollWidth: number,\n * fixedColumns: !Array.,\n * fixedRightColumns: !Array.,\n * scrollableColumns: !Array.,\n * maxScrollX: number,\n * }} The total width of all columns.\n */\nfunction columnWidths(columnGroupProps, columnProps, scrollEnabledY, width, scrollbarYWidth) {\n var scrollbarSpace = scrollEnabledY ? scrollbarYWidth : 0;\n var viewportWidth = width - scrollbarSpace;\n\n var _flexWidths = flexWidths(columnGroupProps, columnProps, viewportWidth),\n newColumnGroupProps = _flexWidths.newColumnGroupProps,\n newColumnProps = _flexWidths.newColumnProps;\n\n var _groupColumns = groupColumns(newColumnProps),\n fixedColumns = _groupColumns.fixedColumns,\n fixedRightColumns = _groupColumns.fixedRightColumns,\n scrollableColumns = _groupColumns.scrollableColumns;\n\n var availableScrollWidth = viewportWidth - (0, _widthHelper.getTotalWidth)(fixedColumns) - (0, _widthHelper.getTotalWidth)(fixedRightColumns);\n var maxScrollX = Math.max(0, (0, _widthHelper.getTotalWidth)(newColumnProps) - viewportWidth);\n return {\n columnGroupProps: newColumnGroupProps,\n columnProps: newColumnProps,\n availableScrollWidth: availableScrollWidth,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n maxScrollX: maxScrollX\n };\n}\n/**\n * @param {!Array.} columnGroupProps\n * @param {!Array.} columnProps\n * @param {number} viewportWidth\n * @return {{\n * newColumnGroupProps: !Array.,\n * newColumnProps: !Array.\n * }}\n */\n\n\nfunction flexWidths(columnGroupProps, columnProps, viewportWidth) {\n var newColumnProps = columnProps;\n var remainingFlexGrow = (0, _widthHelper.getTotalFlexGrow)(columnProps); // if any column is a flex column, we'll need to calculate the widths for every column\n\n if (remainingFlexGrow !== 0) {\n var columnsWidth = (0, _widthHelper.getTotalWidth)(columnProps);\n var remainingFlexWidth = Math.max(viewportWidth - columnsWidth, 0); // calculate and set width for each column\n\n newColumnProps = (0, _map[\"default\"])(columnProps, function (column) {\n var flexGrow = column.flexGrow; // if no flexGrow is specified, column defaults to original width\n\n if (!flexGrow) {\n return column;\n }\n\n var flexWidth = Math.floor(flexGrow * remainingFlexWidth / remainingFlexGrow);\n var newWidth = column.width + flexWidth;\n remainingFlexGrow -= flexGrow;\n remainingFlexWidth -= flexWidth;\n return _extends({}, column, {\n width: newWidth\n });\n });\n } // calculate width for each column group\n\n\n var columnGroupWidths = (0, _map[\"default\"])(columnGroupProps, function () {\n return 0;\n });\n (0, _forEach[\"default\"])(newColumnProps, function (column) {\n if (column.groupIdx !== undefined) {\n columnGroupWidths[column.groupIdx] += column.width;\n }\n }); // set the width for each column group\n\n var newColumnGroupProps = (0, _map[\"default\"])(columnGroupProps, function (columnGroup, idx) {\n if (columnGroupWidths[idx] === columnGroup.width) {\n return columnGroup;\n }\n\n return _extends({}, columnGroup, {\n width: columnGroupWidths[idx]\n });\n });\n return {\n newColumnGroupProps: newColumnGroupProps,\n newColumnProps: newColumnProps\n };\n}\n/**\n * @param {!Array.} columnProps\n * @return {{\n * fixedColumns: !Array.,\n * fixedRightColumns: !Array.,\n * scrollableColumns: !Array.\n * }}\n */\n\n\nfunction groupColumns(columnProps) {\n var fixedColumns = [];\n var fixedRightColumns = [];\n var scrollableColumns = [];\n (0, _forEach[\"default\"])(columnProps, function (columnProp) {\n var container = scrollableColumns;\n\n if (columnProp.fixed) {\n container = fixedColumns;\n } else if (columnProp.fixedRight) {\n container = fixedRightColumns;\n }\n\n container.push(columnProp);\n });\n return {\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns\n };\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([function (state) {\n return state.columnGroupProps;\n}, function (state) {\n return state.columnProps;\n}, function (state) {\n return (0, _scrollbarsVisible[\"default\"])(state).scrollEnabledY;\n}, function (state) {\n return state.tableSize.width;\n}, function (state) {\n return state.scrollbarYWidth;\n}], columnWidths);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ScrollbarState = void 0;\n\nvar _clamp = _interopRequireDefault(require('./../vendor_upstream/core/clamp'));\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nvar _widthHelper = require('./../helper/widthHelper');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule roughHeights\n */\nvar BORDER_HEIGHT = 1;\nvar MIN_BUFFER_ROWS = 3;\nvar MAX_BUFFER_ROWS = 6;\nvar ScrollbarState = {\n HIDDEN: 'hidden',\n JOINT_SCROLLBARS: 'JOINT_SCROLLBARS',\n VISIBLE: 'visible'\n};\n/**\n * Calculate the available height for the viewport.\n * Since we aren't 100% sure of whether scrollbars are visible\n * at this point, we compute a max & min viewport height.\n *\n * maxAvailableHeight is the largest it could be, while\n * minAvailableHeight is the smallest.\n * We also compute how large it is based on\n * the current scrollContentHeight in scrollbarsVisible.\n *\n * bufferRowCount is the number of rows to buffer both ahead and behind the viewport.\n * In total we will buffer twice this number of rows (half ahead, and half behind).\n *\n * reservedHeight is the height reserved for headers and footers.\n *\n * scrollStateX is the state of the horizontal scrollbar.\n * HIDDEN & VISIBLE are self explanatory, but\n * JOINT_SCROLLBARS mean the horizontal scroll will be shown if and\n * only if the vertical scrollbar is shown.\n *\n * @param {!Array.<{\n * width: number,\n * }>} columnProps\n * @param {{\n * cellGroupWrapperHeight: number,\n * footerHeight: number,\n * groupHeaderHeight: number,\n * headerHeight: number,\n * }} elementHeights\n * @param {{\n * bufferRowCount: ?number,\n * rowHeight: number,\n * subRowHeight: number,\n * }} rowSettings\n * @param {{\n * overflowX: string,\n * showScrollbarX: boolean,\n * }} scrollFlags\n * @param {{\n * height: ?number,\n * maxHeight: ?number,\n * useMaxHeight: boolean,\n * width: number,\n * }} tableSize\n * @return {{\n * bufferRowsCount: number,\n * minAvailableHeight: number,\n * maxAvailableHeight: number,\n * reservedHeight: number,\n * scrollStateX: ScrollbarState,\n * }}\n */\n\nexports.ScrollbarState = ScrollbarState;\n\nfunction roughHeights(columnProps, elementHeights, rowSettings, scrollFlags, tableSize, scrollbarXHeight, scrollbarYWidth) {\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n headerHeight = elementHeights.headerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight; // we don't need border height to be added to the table if we are using cellGroupWrapperHeight\n\n var borderHeight = cellGroupWrapperHeight ? 0 : 2 * BORDER_HEIGHT;\n var reservedHeight = footerHeight + headerHeight + groupHeaderHeight + borderHeight;\n var height = tableSize.height,\n maxHeight = tableSize.maxHeight,\n useMaxHeight = tableSize.useMaxHeight,\n width = tableSize.width;\n var maxComponentHeight = Math.round(useMaxHeight ? maxHeight : height);\n var roughAvailableHeight = maxComponentHeight - reservedHeight;\n var scrollStateX = getScrollStateX(columnProps, scrollFlags, width, scrollbarYWidth);\n /*\n * Early estimates of how much height we have to show rows.\n * We won't know which one is real until we know about horizontal scrollbar which\n * requires knowing about vertical scrollbar as well and that\n * requires scrollContentHeight which\n * requires us to have handled scrollTo / scrollToRow...\n */\n\n var minAvailableHeight = roughAvailableHeight;\n var maxAvailableHeight = roughAvailableHeight;\n\n switch (scrollStateX) {\n case ScrollbarState.VISIBLE:\n {\n minAvailableHeight -= scrollbarXHeight;\n maxAvailableHeight -= scrollbarXHeight;\n break;\n }\n\n case ScrollbarState.JOINT_SCROLLBARS:\n {\n minAvailableHeight -= scrollbarXHeight;\n break;\n }\n }\n\n return {\n bufferRowCount: getBufferRowCount(maxAvailableHeight, rowSettings),\n minAvailableHeight: Math.max(minAvailableHeight, 0),\n maxAvailableHeight: Math.max(maxAvailableHeight, 0),\n reservedHeight: reservedHeight,\n scrollStateX: scrollStateX\n };\n}\n/**\n * @param {!Array.<{\n * width: number,\n * }>} columnProps\n * @param {{\n * overflowX: string,\n * showScrollbarX: boolean,\n * }} scrollFlags\n * @param {number} width\n * @return {ScrollbarState}\n */\n\n\nfunction getScrollStateX(columnProps, scrollFlags, width, scrollbarYWidth) {\n var overflowX = scrollFlags.overflowX,\n showScrollbarX = scrollFlags.showScrollbarX;\n var minColWidth = (0, _widthHelper.getTotalWidth)(columnProps);\n\n if (overflowX === 'hidden' || showScrollbarX === false) {\n return ScrollbarState.HIDDEN;\n } else if (minColWidth > width) {\n return ScrollbarState.VISIBLE;\n }\n\n if (minColWidth > width - scrollbarYWidth) {\n return ScrollbarState.JOINT_SCROLLBARS;\n }\n\n return ScrollbarState.HIDDEN;\n}\n/**\n * @param {number} maxAvailableHeight\n * @param {{\n * bufferRowCount: ?number,\n * rowHeight: number,\n * subRowHeight: number,\n * }} rowSettings\n * @return {number}\n */\n\n\nfunction getBufferRowCount(maxAvailableHeight, rowSettings) {\n var bufferRowCount = rowSettings.bufferRowCount,\n rowHeight = rowSettings.rowHeight,\n subRowHeight = rowSettings.subRowHeight;\n\n if (bufferRowCount !== undefined) {\n console.log('buffer set: ' + bufferRowCount);\n return bufferRowCount;\n }\n\n var fullRowHeight = rowHeight + subRowHeight;\n var avgVisibleRowCount = Math.ceil(maxAvailableHeight / fullRowHeight) + 1;\n return (0, _clamp[\"default\"])(Math.floor(avgVisibleRowCount / 2), MIN_BUFFER_ROWS, MAX_BUFFER_ROWS);\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([function (state) {\n return state.columnProps;\n}, function (state) {\n return state.elementHeights;\n}, function (state) {\n return state.rowSettings;\n}, function (state) {\n return state.scrollFlags;\n}, function (state) {\n return state.tableSize;\n}, function (state) {\n return state.scrollbarXHeight;\n}, function (state) {\n return state.scrollbarYWidth;\n}], roughHeights);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nvar _roughHeights = _interopRequireWildcard(require('././roughHeights'));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule scrollbarsVisible\n */\n\n/**\n * State regarding which scrollbars will be shown.\n * Also includes the actual availableHeight which depends on the scrollbars.\n *\n * @param {{\n * minAvailableHeight: number,\n * maxAvailableHeight: number,\n * scrollStateX: ScrollbarState,\n * }} roughHeights\n * @param {number} scrollContentHeight,\n * @param {{\n * overflowY: string,\n * showScrollbarY: boolean,\n * }} scrollFlags\n * @return {{\n * availableHeight: number,\n * scrollEnabledX: boolean,\n * scrollEnabledY: boolean,\n * }}\n */\nfunction scrollbarsVisible(roughHeights, scrollContentHeight, scrollFlags) {\n var overflowY = scrollFlags.overflowY,\n showScrollbarY = scrollFlags.showScrollbarY;\n var allowScrollbarY = overflowY !== 'hidden' && showScrollbarY !== false;\n var minAvailableHeight = roughHeights.minAvailableHeight,\n maxAvailableHeight = roughHeights.maxAvailableHeight,\n scrollStateX = roughHeights.scrollStateX;\n var scrollEnabledY = false;\n var scrollEnabledX = false;\n\n if (scrollStateX === _roughHeights.ScrollbarState.VISIBLE) {\n scrollEnabledX = true;\n }\n\n if (allowScrollbarY && scrollContentHeight > maxAvailableHeight) {\n scrollEnabledY = true;\n } // Handle case where vertical scrollbar makes horizontal scrollbar necessary\n\n\n if (scrollEnabledY && scrollStateX === _roughHeights.ScrollbarState.JOINT_SCROLLBARS) {\n scrollEnabledX = true;\n }\n\n var availableHeight = maxAvailableHeight;\n\n if (scrollEnabledX) {\n availableHeight = minAvailableHeight;\n }\n\n return {\n availableHeight: availableHeight,\n scrollEnabledX: scrollEnabledX,\n scrollEnabledY: scrollEnabledY\n };\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([_roughHeights[\"default\"], function (state) {\n return state.scrollContentHeight;\n}, function (state) {\n return state.scrollFlags;\n}], scrollbarsVisible);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _shallowEqualSelector = _interopRequireDefault(require('./../helper/shallowEqualSelector'));\n\nvar _roughHeights = _interopRequireDefault(require('././roughHeights'));\n\nvar _scrollbarsVisible = _interopRequireDefault(require('././scrollbarsVisible'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule tableHeights\n */\n\n/**\n * Compute the necessary heights for rendering parts of the table\n *\n * @param {{\n * footerHeight: number,\n * groupHeaderHeight: number,\n * headerHeight: number,\n * }} elementHeights\n * @param {number|undefined} ownerHeight\n * @param {number} reservedHeight\n * @param {number} scrollContentHeight\n * @param {{\n * availableHeight: number,\n * scrollEnabledX: boolean,\n * }} scrollbarsVisible\n * @param {boolean} useMaxHeight\n * @return {{\n * bodyHeight: number,\n * bodyOffsetTop: number,\n * componentHeight: number,\n * contentHeight: number,\n * footOffsetTop: number,\n * scrollbarXOffsetTop: number,\n * scrollbarYHeight: number,\n * visibleRowsHeight: number,\n * }}\n */\nfunction tableHeights(elementHeights, ownerHeight, reservedHeight, scrollContentHeight, scrollbarsVisible, useMaxHeight, scrollbarXHeight) {\n var availableHeight = scrollbarsVisible.availableHeight,\n scrollEnabledX = scrollbarsVisible.scrollEnabledX;\n var reservedWithScrollbar = reservedHeight;\n\n if (scrollEnabledX) {\n reservedWithScrollbar += scrollbarXHeight;\n } // If less content than space for rows (bodyHeight), then\n // we should shrink the space for rows to fit our row content (scrollContentHeight).\n\n\n var bodyHeight = Math.min(availableHeight, scrollContentHeight); // If using max height, component should only be sized to content.\n // Otherwise use all available height.\n\n var rowContainerHeight = useMaxHeight ? bodyHeight : availableHeight;\n var componentHeight = rowContainerHeight + reservedWithScrollbar; // If we have an owner height and it's less than the component height,\n // adjust visible height so we show footer and scrollbar position at the bottom of owner.\n\n var visibleRowsHeight = rowContainerHeight;\n\n if (ownerHeight < componentHeight) {\n visibleRowsHeight = ownerHeight - reservedWithScrollbar;\n } // If using max height, virtual row container is scrollContentHeight, otherwise\n // it is the larger of that or the available height.\n\n\n var virtualRowContainerHeight = useMaxHeight ? scrollContentHeight : Math.max(scrollContentHeight, availableHeight); // contentHeight is the virtual rows height and reserved height,\n // or ownerHeight if that's larger\n\n var contentHeight = virtualRowContainerHeight + reservedWithScrollbar;\n\n if (ownerHeight) {\n contentHeight = Math.max(ownerHeight, contentHeight);\n } // Determine component offsets\n\n\n var footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n var bodyOffsetTop = groupHeaderHeight + headerHeight;\n var footOffsetTop = bodyOffsetTop + visibleRowsHeight;\n var scrollbarXOffsetTop = footOffsetTop + footerHeight;\n var scrollbarYHeight = Math.max(0, footOffsetTop - bodyOffsetTop);\n return {\n bodyHeight: bodyHeight,\n bodyOffsetTop: bodyOffsetTop,\n componentHeight: componentHeight,\n contentHeight: contentHeight,\n footOffsetTop: footOffsetTop,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollbarYHeight: scrollbarYHeight,\n visibleRowsHeight: visibleRowsHeight\n };\n}\n\nvar _default = (0, _shallowEqualSelector[\"default\"])([function (state) {\n return state.elementHeights;\n}, function (state) {\n return state.tableSize.ownerHeight;\n}, function (state) {\n return (0, _roughHeights[\"default\"])(state).reservedHeight;\n}, function (state) {\n return state.scrollContentHeight;\n}, _scrollbarsVisible[\"default\"], function (state) {\n return state.tableSize.useMaxHeight;\n}, function (state) {\n return state.scrollbarXHeight;\n}], tableHeights);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\nvar _populated = false; // Browsers\n\nvar _ie, _firefox, _opera, _webkit, _chrome; // Actual IE browser for compatibility mode\n\n\nvar _ie_real_version; // Platforms\n\n\nvar _osx, _windows, _linux, _android; // Architectures\n\n\nvar _win64; // Devices\n\n\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true; // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas); // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n\n _win64 = !!/Win64/.exec(uas);\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : agent[5] ? parseFloat(agent[5]) : NaN; // IE compatibility mode\n\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n } // grab the \"true\" ie version from the trident token if available\n\n\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function ie() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function ieCompatibilityMode() {\n return _populate() || _ie_real_version > _ie;\n },\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function ie64() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function firefox() {\n return _populate() || _firefox;\n },\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function opera() {\n return _populate() || _opera;\n },\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function webkit() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function safari() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome: function chrome() {\n return _populate() || _chrome;\n },\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function windows() {\n return _populate() || _windows;\n },\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function osx() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function linux() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function iphone() {\n return _populate() || _iphone;\n },\n mobile: function mobile() {\n return _populate() || _iphone || _ipad || _android || _mobile;\n },\n nativeApp: function nativeApp() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n android: function android() {\n return _populate() || _android;\n },\n ipad: function ipad() {\n return _populate() || _ipad;\n }\n};\nvar _default = UserAgent_DEPRECATED;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule cssVar\n * @typechecks\n */\n'use strict'; // If you change these, you'll need to restart the dev server for it to take effect.\n\nvar CSS_VARS = {\n '--scrollbar-face-active-color': '#7d7d7d',\n '--scrollbar-face-color': '#c2c2c2',\n '--scrollbar-face-margin': '4px',\n '--scrollbar-face-radius': '6px',\n '--scrollbar-size': '15px',\n '--scrollbar-size-large': '17px',\n '--scrollbar-track-color': '#fff',\n '--border-color': '#d3d3d3',\n '--fbui-white': '#fff',\n '--fbui-desktop-background-light': '#f6f7f8'\n};\n/**\n * @param {string} name\n */\n\nfunction cssVar(name) {\n if (CSS_VARS.hasOwnProperty(name)) {\n return CSS_VARS[name];\n }\n\n throw new Error('cssVar' + '(\"' + name + '\"): Unexpected class transformation.');\n}\n\ncssVar.CSS_VARS = CSS_VARS;\nmodule.exports = cssVar;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n'use strict';\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n};\n\nvar _default = invariant;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nvar _default = ExecutionEnvironment;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Keys\n */\nvar _default = {\n BACKSPACE: 8,\n TAB: 9,\n RETURN: 13,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46,\n COMMA: 188,\n PERIOD: 190,\n A: 65,\n Z: 90,\n ZERO: 48,\n NUMPAD_0: 96,\n NUMPAD_9: 105\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\nvar _hyphenPattern = /-(.)/g;\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nvar _default = camelize;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _globalThisPolyfill = _interopRequireDefault(require('././globalThisPolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule cancelAnimationFramePolyfill\n */\n\n/**\n * Here is the native and polyfill version of cancelAnimationFrame.\n * Please don't use it directly and use cancelAnimationFrame module instead.\n */\nvar cancelAnimationFrame = _globalThisPolyfill[\"default\"].cancelAnimationFrame || _globalThisPolyfill[\"default\"].webkitCancelAnimationFrame || _globalThisPolyfill[\"default\"].mozCancelAnimationFrame || _globalThisPolyfill[\"default\"].oCancelAnimationFrame || _globalThisPolyfill[\"default\"].msCancelAnimationFrame || _globalThisPolyfill[\"default\"].clearTimeout;\nvar _default = cancelAnimationFrame;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule clamp\n * @typechecks\n */\n\n/**\n * Clamps (or clips or confines) the value to be between min and max.\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number}\n */\nfunction clamp(value, min, max) {\n if (value < min) {\n return min;\n }\n\n if (value > max) {\n return max;\n }\n\n return value;\n}\n\nvar _default = clamp;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule debounceCore\n * @typechecks\n */\n\n/**\n * Invokes the given callback after a specified number of milliseconds have\n * elapsed, ignoring subsequent calls.\n *\n * For example, if you wanted to update a preview after the user stops typing\n * you could do the following:\n *\n * elem.addEventListener('keyup', debounce(this.updatePreview, 250), false);\n *\n * The returned function has a reset method which can be called to cancel a\n * pending invocation.\n *\n * var debouncedUpdatePreview = debounce(this.updatePreview, 250);\n * elem.addEventListener('keyup', debouncedUpdatePreview, false);\n *\n * // later, to cancel pending calls\n * debouncedUpdatePreview.reset();\n *\n * @param {function} func - the function to debounce\n * @param {number} wait - how long to wait in milliseconds\n * @param {*} context - optional context to invoke the function in\n * @param {function} [setTimeoutFunc] - an implementation of setTimeout\n * if nothing is passed in the default setTimeout function is used\n * @param {function} [clearTimeoutFunc] - an implementation of clearTimeout\n * if nothing is passed in the default clearTimeout function is used\n */\nfunction debounce(func, wait, context, setTimeoutFunc, clearTimeoutFunc) {\n setTimeoutFunc = setTimeoutFunc || setTimeout;\n clearTimeoutFunc = clearTimeoutFunc || clearTimeout;\n var timeout;\n\n function debouncer() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n debouncer.reset();\n\n var callback = function callback() {\n func.apply(context, args);\n };\n\n callback.__SMmeta = func.__SMmeta;\n timeout = setTimeoutFunc(callback, wait);\n }\n\n debouncer.reset = function () {\n clearTimeoutFunc(timeout);\n };\n\n return debouncer;\n}\n\nvar _default = debounce;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nvar _default = emptyFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _invariant = _interopRequireDefault(require('./../../stubs/invariant'));\n\nvar _ExecutionEnvironment = _interopRequireDefault(require('././ExecutionEnvironment'));\n\nvar _camelize = _interopRequireDefault(require('././camelize'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getVendorPrefixedName\n * @typechecks\n */\nvar memoized = {};\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\nvar prefixRegex = new RegExp('^(' + prefixes.join('|') + ')');\nvar testStyle = _ExecutionEnvironment[\"default\"].canUseDOM ? document.createElement('div').style : {};\n\nfunction getWithPrefix(name) {\n for (var i = 0; i < prefixes.length; i++) {\n var prefixedName = prefixes[i] + name;\n\n if (prefixedName in testStyle) {\n return prefixedName;\n }\n }\n\n return null;\n}\n/**\n * @param {string} property Name of a css property to check for.\n * @return {?string} property name supported in the browser, or null if not\n * supported.\n */\n\n\nfunction getVendorPrefixedName(property) {\n var name = (0, _camelize[\"default\"])(property);\n\n if (memoized[name] === undefined) {\n var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);\n\n if (prefixRegex.test(capitalizedName)) {\n (0, _invariant[\"default\"])(false, 'getVendorPrefixedName must only be called with unprefixed' + 'CSS property names. It was called with %s', property);\n }\n\n memoized[name] = name in testStyle ? name : getWithPrefix(capitalizedName);\n }\n\n return memoized[name];\n}\n\nvar _default = getVendorPrefixedName;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule globalThisPolyfill\n */\nvar globalThisPolyfill = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _default = globalThisPolyfill;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule joinClasses\n * @typechecks static-only\n */\n'use strict';\n/**\n * Combines multiple className strings into one.\n * http://jsperf.com/joinclasses-args-vs-array\n *\n * @param {...?string} className\n * @return {string}\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction joinClasses(className\n/*, ... */\n) {\n if (!className) {\n className = '';\n }\n\n var nextClass;\n var argLength = arguments.length;\n\n if (argLength > 1) {\n for (var ii = 1; ii < argLength; ii++) {\n nextClass = arguments[ii];\n\n if (nextClass) {\n className = (className ? className + ' ' : '') + nextClass;\n }\n }\n }\n\n return className;\n}\n\nvar _default = joinClasses;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _globalThisPolyfill = _interopRequireDefault(require('././globalThisPolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule nativeRequestAnimationFrame\n */\nvar nativeRequestAnimationFrame = _globalThisPolyfill[\"default\"].requestAnimationFrame || _globalThisPolyfill[\"default\"].webkitRequestAnimationFrame || _globalThisPolyfill[\"default\"].mozRequestAnimationFrame || _globalThisPolyfill[\"default\"].oRequestAnimationFrame || _globalThisPolyfill[\"default\"].msRequestAnimationFrame;\nvar _default = nativeRequestAnimationFrame;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _emptyFunction = _interopRequireDefault(require('././emptyFunction'));\n\nvar _nativeRequestAnimationFrame = _interopRequireDefault(require('././nativeRequestAnimationFrame'));\n\nvar _globalThisPolyfill = _interopRequireDefault(require('././globalThisPolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule requestAnimationFramePolyfill\n */\nvar lastTime = 0;\n/**\n * Here is the native and polyfill version of requestAnimationFrame.\n * Please don't use it directly and use requestAnimationFrame module instead.\n */\n\nvar requestAnimationFrame = _nativeRequestAnimationFrame[\"default\"] || function (callback) {\n var currTime = Date.now();\n var timeDelay = Math.max(0, 16 - (currTime - lastTime));\n lastTime = currTime + timeDelay;\n return _globalThisPolyfill[\"default\"].setTimeout(function () {\n callback(Date.now());\n }, timeDelay);\n}; // Works around a rare bug in Safari 6 where the first request is never invoked.\n\n\nrequestAnimationFrame(_emptyFunction[\"default\"]);\nvar _default = requestAnimationFrame;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n'use strict';\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar _default = shallowEqual;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _getVendorPrefixedName = _interopRequireDefault(require('./../core/getVendorPrefixedName'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BrowserSupportCore\n */\nvar BrowserSupportCore = {\n /**\n * @return {bool} True if browser supports css animations.\n */\n hasCSSAnimations: function hasCSSAnimations() {\n return !!(0, _getVendorPrefixedName[\"default\"])('animationName');\n },\n\n /**\n * @return {bool} True if browser supports css transforms.\n */\n hasCSSTransforms: function hasCSSTransforms() {\n return !!(0, _getVendorPrefixedName[\"default\"])('transform');\n },\n\n /**\n * @return {bool} True if browser supports css 3d transforms.\n */\n hasCSS3DTransforms: function hasCSS3DTransforms() {\n return !!(0, _getVendorPrefixedName[\"default\"])('perspective');\n },\n\n /**\n * @return {bool} True if browser supports css transitions.\n */\n hasCSSTransitions: function hasCSSTransitions() {\n return !!(0, _getVendorPrefixedName[\"default\"])('transition');\n }\n};\nvar _default = BrowserSupportCore;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This class listens to events on the document and then updates a react\n * component through callbacks.\n * Please note that captureMouseMove must be called in\n * order to initialize listeners on mousemove and mouseup.\n * releaseMouseMove must be called to remove them. It is important to\n * call releaseMouseMoves since mousemove is expensive to listen to.\n *\n * @providesModule DOMMouseMoveTracker\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _EventListener = _interopRequireDefault(require('./../stubs/EventListener'));\n\nvar _cancelAnimationFramePolyfill = _interopRequireDefault(require('./../core/cancelAnimationFramePolyfill'));\n\nvar _requestAnimationFramePolyfill = _interopRequireDefault(require('./../core/requestAnimationFramePolyfill'));\n\nvar _FixedDataTableEventHelper = _interopRequireDefault(require('./../../FixedDataTableEventHelper'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DOMMouseMoveTracker = /*#__PURE__*/function () {\n /**\n * onMove is the callback that will be called on every mouse move.\n * onMoveEnd is called on mouse up when movement has ended.\n */\n function DOMMouseMoveTracker(\n /*function*/\n onMove,\n /*function*/\n onMoveEnd,\n /*DOMElement*/\n domNode,\n /*boolean*/\n touchEnabled) {\n _classCallCheck(this, DOMMouseMoveTracker);\n\n this._isDragging = false;\n this._isTouchEnabled = touchEnabled;\n this._animationFrameID = null;\n this._domNode = domNode;\n this._onMove = onMove;\n this._onMoveEnd = onMoveEnd;\n this._onMouseEnd = this._onMouseEnd.bind(this);\n this._onMouseMove = this._onMouseMove.bind(this);\n this._onMouseUp = this._onMouseUp.bind(this);\n this._didMouseMove = this._didMouseMove.bind(this);\n }\n /**\n * This is to set up the listeners for listening to mouse move\n * and mouse up signaling the movement has ended. Please note that these\n * listeners are added at the document.body level. It takes in an event\n * in order to grab inital state.\n */\n\n\n _createClass(DOMMouseMoveTracker, [{\n key: \"captureMouseMoves\",\n value: function captureMouseMoves(\n /*object*/\n event) {\n if (!this._eventMoveToken && !this._eventUpToken && !this._eventLeaveToken) {\n this._eventMoveToken = _EventListener[\"default\"].listen(this._domNode, 'mousemove', this._onMouseMove);\n this._eventUpToken = _EventListener[\"default\"].listen(this._domNode, 'mouseup', this._onMouseUp);\n this._eventLeaveToken = _EventListener[\"default\"].listen(this._domNode, 'mouseleave', this._onMouseEnd);\n }\n\n if (this._isTouchEnabled && !this._eventTouchStartToken && !this._eventTouchMoveToken && !this._eventTouchEndToken) {\n this._eventTouchStartToken = _EventListener[\"default\"].listen(this._domNode, 'touchstart', this._onMouseMove);\n this._eventTouchMoveToken = _EventListener[\"default\"].listen(this._domNode, 'touchmove', this._onMouseMove);\n this._eventTouchEndToken = _EventListener[\"default\"].listen(this._domNode, 'touchend', this._onMouseUp);\n }\n\n if (!this._isDragging) {\n this._deltaX = 0;\n this._deltaY = 0;\n this._isDragging = true;\n\n var coordinates = _FixedDataTableEventHelper[\"default\"].getCoordinatesFromEvent(event);\n\n var x = coordinates.x;\n var y = coordinates.y;\n this._x = x;\n this._y = y;\n }\n\n event.preventDefault();\n }\n /**\n * This releases all of the listeners on document.body.\n */\n\n }, {\n key: \"releaseMouseMoves\",\n value: function releaseMouseMoves() {\n if (this._eventMoveToken && this._eventUpToken && this._eventLeaveToken) {\n this._eventMoveToken.remove();\n\n this._eventMoveToken = null;\n\n this._eventUpToken.remove();\n\n this._eventUpToken = null;\n\n this._eventLeaveToken.remove();\n\n this._eventLeaveToken = null;\n }\n\n if (this._isTouchEnabled && this._eventTouchStartToken && this._eventTouchMoveToken && this._eventTouchEndToken) {\n this._eventTouchStartToken.remove();\n\n this._eventTouchStartToken = null;\n\n this._eventTouchMoveToken.remove();\n\n this._eventTouchMoveToken = null;\n\n this._eventTouchEndToken.remove();\n\n this._eventTouchEndToken = null;\n }\n\n if (this._animationFrameID !== null) {\n (0, _cancelAnimationFramePolyfill[\"default\"])(this._animationFrameID);\n this._animationFrameID = null;\n }\n\n if (this._isDragging) {\n this._isDragging = false;\n this._x = null;\n this._y = null;\n }\n }\n /**\n * Returns whether or not if the mouse movement is being tracked.\n */\n\n }, {\n key: \"isDragging\",\n value: function isDragging()\n /*boolean*/\n {\n return this._isDragging;\n }\n /**\n * Calls onMove passed into constructor and updates internal state.\n */\n\n }, {\n key: \"_onMouseMove\",\n value: function _onMouseMove(\n /*object*/\n event) {\n var coordinates = _FixedDataTableEventHelper[\"default\"].getCoordinatesFromEvent(event);\n\n var x = coordinates.x;\n var y = coordinates.y;\n this._deltaX += x - this._x;\n this._deltaY += y - this._y;\n\n if (this._animationFrameID === null) {\n // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFramePolyfill` to avoid over-updating.\n this._animationFrameID = (0, _requestAnimationFramePolyfill[\"default\"])(this._didMouseMove);\n }\n\n this._x = x;\n this._y = y;\n event.preventDefault();\n }\n }, {\n key: \"_didMouseMove\",\n value: function _didMouseMove() {\n this._animationFrameID = null;\n\n this._onMove(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n /**\n * Calls onMoveEnd passed into constructor and updates internal state.\n */\n\n }, {\n key: \"_onMouseUp\",\n value: function _onMouseUp() {\n if (this._animationFrameID) {\n this._didMouseMove();\n }\n\n this._onMoveEnd(false);\n }\n /**\n * Calls onMoveEnd passed into the constructor, updates internal state, and cancels the move.\n */\n\n }, {\n key: \"_onMouseEnd\",\n value: function _onMouseEnd() {\n this._onMoveEnd(true);\n }\n }]);\n\n return DOMMouseMoveTracker;\n}();\n\nvar _default = DOMMouseMoveTracker;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is utility that handles onWheel events and calls provided wheel\n * callback with correct frame rate.\n *\n * @providesModule ReactWheelHandler\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _emptyFunction = _interopRequireDefault(require('./../core/emptyFunction'));\n\nvar _normalizeWheel = _interopRequireDefault(require('././normalizeWheel'));\n\nvar _requestAnimationFramePolyfill = _interopRequireDefault(require('./../core/requestAnimationFramePolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ReactWheelHandler = /*#__PURE__*/function () {\n /**\n * onWheel is the callback that will be called with right frame rate if\n * any wheel events happened\n * onWheel should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactWheelHandler(\n /*function*/\n onWheel,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n isRTL,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactWheelHandler);\n\n this._animationFrameID = null;\n this._deltaX = 0;\n this._deltaY = 0;\n this._didWheel = this._didWheel.bind(this);\n this._rootRef = null;\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? _emptyFunction[\"default\"].thatReturnsTrue : _emptyFunction[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? _emptyFunction[\"default\"].thatReturnsTrue : _emptyFunction[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n this._isRTL = isRTL;\n }\n\n _createClass(ReactWheelHandler, [{\n key: \"onWheel\",\n value: function onWheel(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var normalizedEvent = (0, _normalizeWheel[\"default\"])(event); // if shift is held, swap the axis of scrolling.\n\n if (event.shiftKey && ReactWheelHandler._allowInternalAxesSwap()) {\n normalizedEvent = ReactWheelHandler._swapNormalizedWheelAxis(normalizedEvent);\n } else if (!event.shiftKey) {\n normalizedEvent.pixelX *= this._isRTL ? -1 : 1;\n }\n\n var deltaX = this._deltaX + normalizedEvent.pixelX;\n var deltaY = this._deltaY + normalizedEvent.pixelY;\n\n var handleScrollX = this._handleScrollX(deltaX, deltaY);\n\n var handleScrollY = this._handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n if (this._rootRef && !this._contains(event.target)) {\n return;\n }\n\n this._deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this._deltaY += handleScrollY ? normalizedEvent.pixelY : 0; // This will result in a scroll to the table, so there's no need to let the parent containers scroll\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n }\n\n var changed;\n\n if (this._deltaX !== 0 || this._deltaY !== 0) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this._animationFrameID === null) {\n this._animationFrameID = (0, _requestAnimationFramePolyfill[\"default\"])(this._didWheel);\n }\n }\n }, {\n key: \"setRoot\",\n value: function setRoot(rootRef) {\n this._rootRef = rootRef;\n }\n }, {\n key: \"_didWheel\",\n value: function _didWheel() {\n this._animationFrameID = null;\n\n this._onWheelCallback(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n }, {\n key: \"_contains\",\n value: function _contains(target) {\n var parent = target;\n\n while (parent != document.body) {\n if (parent === this._rootRef) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n }\n }], [{\n key: \"_swapNormalizedWheelAxis\",\n value: function _swapNormalizedWheelAxis(\n /*object*/\n normalizedEvent)\n /*object*/\n {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n }\n }, {\n key: \"_allowInternalAxesSwap\",\n value: function _allowInternalAxesSwap()\n /*boolean*/\n {\n return navigator.platform !== 'MacIntel';\n }\n }]);\n\n return ReactWheelHandler;\n}();\n\nvar _default = ReactWheelHandler;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _UserAgent_DEPRECATED = _interopRequireDefault(require('./../../stubs/UserAgent_DEPRECATED'));\n\nvar _isEventSupported = _interopRequireDefault(require('./../react/renderers/dom/client/utils/isEventSupported'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\n\nfunction normalizeWheel(\n/*object*/\nevent)\n/*object*/\n{\n var sX = 0,\n sY = 0,\n // spinX, spinY\n pX = 0,\n pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in event) {\n sY = event.detail;\n }\n\n if ('wheelDelta' in event) {\n sY = -event.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in event) {\n sY = -event.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in event) {\n sX = -event.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pY = event.deltaY;\n }\n\n if ('deltaX' in event) {\n pX = event.deltaX;\n }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\n\n\nnormalizeWheel.getEventType = function ()\n/*string*/\n{\n return _UserAgent_DEPRECATED[\"default\"].firefox() ? 'DOMMouseScroll' : (0, _isEventSupported[\"default\"])('wheel') ? 'wheel' : 'mousewheel';\n};\n\nvar _default = normalizeWheel;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule translateDOMPositionXY\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _BrowserSupportCore = _interopRequireDefault(require('././BrowserSupportCore'));\n\nvar _getVendorPrefixedName = _interopRequireDefault(require('./../core/getVendorPrefixedName'));\n\nvar _globalThisPolyfill = _interopRequireDefault(require('./../core/globalThisPolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar TRANSFORM = (0, _getVendorPrefixedName[\"default\"])('transform');\nvar BACKFACE_VISIBILITY = (0, _getVendorPrefixedName[\"default\"])('backfaceVisibility');\n\nvar translateDOMPositionXY = function () {\n if (_BrowserSupportCore[\"default\"].hasCSSTransforms()) {\n var ua = _globalThisPolyfill[\"default\"].window ? _globalThisPolyfill[\"default\"].window.navigator.userAgent : 'UNKNOWN';\n var isSafari = /Safari\\//.test(ua) && !/Chrome\\//.test(ua); // It appears that Safari messes up the composition order\n // of GPU-accelerated layers\n // (see bug https://bugs.webkit.org/show_bug.cgi?id=61824).\n // Use 2D translation instead.\n\n if (!isSafari && _BrowserSupportCore[\"default\"].hasCSS3DTransforms()) {\n return function (\n /*object*/\n style,\n /*number*/\n x,\n /*number*/\n y) {\n style[TRANSFORM] = 'translate3d(' + x + 'px,' + y + 'px,0)';\n };\n } else {\n return function (\n /*object*/\n style,\n /*number*/\n x,\n /*number*/\n y) {\n style[TRANSFORM] = 'translate(' + x + 'px,' + y + 'px)';\n };\n }\n } else {\n return function (\n /*object*/\n style,\n /*number*/\n x,\n /*number*/\n y) {\n style.left = x + 'px';\n style.top = y + 'px';\n };\n }\n}();\n\nvar _default = translateDOMPositionXY;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ExecutionEnvironment = _interopRequireDefault(require('./../../../../../core/ExecutionEnvironment'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar useHasFeature;\n\nif (_ExecutionEnvironment[\"default\"].canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\n\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!_ExecutionEnvironment[\"default\"].canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar _default = isEventSupported;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Heap\n * @typechecks\n * @preventMunge\n */\n'use strict';\n/*\n * @param {*} a\n * @param {*} b\n * @return {boolean}\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction defaultComparator(a, b) {\n return a < b;\n}\n\nvar Heap = /*#__PURE__*/function () {\n function Heap(items, comparator) {\n _classCallCheck(this, Heap);\n\n this._items = items || [];\n this._size = this._items.length;\n this._comparator = comparator || defaultComparator;\n\n this._heapify();\n }\n /*\n * @return {boolean}\n */\n\n\n _createClass(Heap, [{\n key: \"empty\",\n value: function empty() {\n return this._size === 0;\n }\n /*\n * @return {*}\n */\n\n }, {\n key: \"pop\",\n value: function pop() {\n if (this._size === 0) {\n return;\n }\n\n var elt = this._items[0];\n\n var lastElt = this._items.pop();\n\n this._size--;\n\n if (this._size > 0) {\n this._items[0] = lastElt;\n\n this._sinkDown(0);\n }\n\n return elt;\n }\n /*\n * @param {*} item\n */\n\n }, {\n key: \"push\",\n value: function push(item) {\n this._items[this._size++] = item;\n\n this._bubbleUp(this._size - 1);\n }\n /*\n * @return {number}\n */\n\n }, {\n key: \"size\",\n value: function size() {\n return this._size;\n }\n /*\n * @return {*}\n */\n\n }, {\n key: \"peek\",\n value: function peek() {\n if (this._size === 0) {\n return;\n }\n\n return this._items[0];\n }\n }, {\n key: \"_heapify\",\n value: function _heapify() {\n for (var index = Math.floor((this._size + 1) / 2); index >= 0; index--) {\n this._sinkDown(index);\n }\n }\n /*\n * @parent {number} index\n */\n\n }, {\n key: \"_bubbleUp\",\n value: function _bubbleUp(index) {\n var elt = this._items[index];\n\n while (index > 0) {\n var parentIndex = Math.floor((index + 1) / 2) - 1;\n var parentElt = this._items[parentIndex]; // if parentElt < elt, stop\n\n if (this._comparator(parentElt, elt)) {\n return;\n } // swap\n\n\n this._items[parentIndex] = elt;\n this._items[index] = parentElt;\n index = parentIndex;\n }\n }\n /*\n * @parent {number} index\n */\n\n }, {\n key: \"_sinkDown\",\n value: function _sinkDown(index) {\n var elt = this._items[index];\n\n while (true) {\n var leftChildIndex = 2 * (index + 1) - 1;\n var rightChildIndex = 2 * (index + 1);\n var swapIndex = -1;\n\n if (leftChildIndex < this._size) {\n var leftChild = this._items[leftChildIndex];\n\n if (this._comparator(leftChild, elt)) {\n swapIndex = leftChildIndex;\n }\n }\n\n if (rightChildIndex < this._size) {\n var rightChild = this._items[rightChildIndex];\n\n if (this._comparator(rightChild, elt)) {\n if (swapIndex === -1 || this._comparator(rightChild, this._items[swapIndex])) {\n swapIndex = rightChildIndex;\n }\n }\n } // if we don't have a swap, stop\n\n\n if (swapIndex === -1) {\n return;\n }\n\n this._items[index] = this._items[swapIndex];\n this._items[swapIndex] = elt;\n index = swapIndex;\n }\n }\n }]);\n\n return Heap;\n}();\n\nvar _default = Heap;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule IntegerBufferSet\n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Heap = _interopRequireDefault(require('././Heap'));\n\nvar _invariant = _interopRequireDefault(require('./../../stubs/invariant'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// Data structure that allows to store values and assign positions to them\n// in a way to minimize changing positions of stored values when new ones are\n// added or when some values are replaced. Stored elements are alwasy assigned\n// a consecutive set of positoins startin from 0 up to count of elements less 1\n// Following actions can be executed\n// * get position assigned to given value (null if value is not stored)\n// * create new entry for new value and get assigned position back\n// * replace value that is furthest from specified value range with new value\n// and get it's position back\n// All operations take amortized log(n) time where n is number of elements in\n// the set.\nvar IntegerBufferSet = /*#__PURE__*/function () {\n function IntegerBufferSet() {\n _classCallCheck(this, IntegerBufferSet);\n\n this._valueToPositionMap = {};\n this._size = 0;\n this._smallValues = new _Heap[\"default\"]([], // Initial data in the heap\n this._smallerComparator);\n this._largeValues = new _Heap[\"default\"]([], // Initial data in the heap\n this._greaterComparator);\n this.getNewPositionForValue = this.getNewPositionForValue.bind(this);\n this.getValuePosition = this.getValuePosition.bind(this);\n this.getSize = this.getSize.bind(this);\n this.replaceFurthestValuePosition = this.replaceFurthestValuePosition.bind(this);\n }\n\n _createClass(IntegerBufferSet, [{\n key: \"getSize\",\n value: function getSize()\n /*number*/\n {\n return this._size;\n }\n }, {\n key: \"getValuePosition\",\n value: function getValuePosition(\n /*number*/\n value)\n /*?number*/\n {\n if (this._valueToPositionMap[value] === undefined) {\n return null;\n }\n\n return this._valueToPositionMap[value];\n }\n }, {\n key: \"getNewPositionForValue\",\n value: function getNewPositionForValue(\n /*number*/\n value)\n /*number*/\n {\n (0, _invariant[\"default\"])(this._valueToPositionMap[value] === undefined, \"Shouldn't try to find new position for value already stored in BufferSet\");\n var newPosition = this._size;\n this._size++;\n\n this._pushToHeaps(newPosition, value);\n\n this._valueToPositionMap[value] = newPosition;\n return newPosition;\n }\n }, {\n key: \"replaceFurthestValuePosition\",\n value: function replaceFurthestValuePosition(\n /*number*/\n lowValue,\n /*number*/\n highValue,\n /*number*/\n newValue)\n /*?number*/\n {\n (0, _invariant[\"default\"])(this._valueToPositionMap[newValue] === undefined, \"Shouldn't try to replace values with value already stored value in \" + 'BufferSet');\n\n this._cleanHeaps();\n\n if (this._smallValues.empty() || this._largeValues.empty()) {\n // Threre are currently no values stored. We will have to create new\n // position for this value.\n return null;\n }\n\n var minValue = this._smallValues.peek().value;\n\n var maxValue = this._largeValues.peek().value;\n\n if (minValue >= lowValue && maxValue <= highValue) {\n // All values currently stored are necessary, we can't reuse any of them.\n return null;\n }\n\n var valueToReplace;\n\n if (lowValue - minValue > maxValue - highValue) {\n // minValue is further from provided range. We will reuse it's position.\n valueToReplace = minValue;\n\n this._smallValues.pop();\n } else {\n valueToReplace = maxValue;\n\n this._largeValues.pop();\n }\n\n var position = this._valueToPositionMap[valueToReplace];\n delete this._valueToPositionMap[valueToReplace];\n this._valueToPositionMap[newValue] = position;\n\n this._pushToHeaps(position, newValue);\n\n return position;\n }\n }, {\n key: \"_pushToHeaps\",\n value: function _pushToHeaps(\n /*number*/\n position,\n /*number*/\n value) {\n var element = {\n position: position,\n value: value\n }; // We can reuse the same object in both heaps, because we don't mutate them\n\n this._smallValues.push(element);\n\n this._largeValues.push(element);\n }\n }, {\n key: \"_cleanHeaps\",\n value: function _cleanHeaps() {\n // We not usually only remove object from one heap while moving value.\n // Here we make sure that there is no stale data on top of heaps.\n this._cleanHeap(this._smallValues);\n\n this._cleanHeap(this._largeValues);\n\n var minHeapSize = Math.min(this._smallValues.size(), this._largeValues.size());\n var maxHeapSize = Math.max(this._smallValues.size(), this._largeValues.size());\n\n if (maxHeapSize > 10 * minHeapSize) {\n // There are many old values in one of heaps. We nned to get rid of them\n // to not use too avoid memory leaks\n this._recreateHeaps();\n }\n }\n }, {\n key: \"_recreateHeaps\",\n value: function _recreateHeaps() {\n var sourceHeap = this._smallValues.size() < this._largeValues.size() ? this._smallValues : this._largeValues;\n var newSmallValues = new _Heap[\"default\"]([], // Initial data in the heap\n this._smallerComparator);\n var newLargeValues = new _Heap[\"default\"]([], // Initial datat in the heap\n this._greaterComparator);\n\n while (!sourceHeap.empty()) {\n var element = sourceHeap.pop(); // Push all stil valid elements to new heaps\n\n if (this._valueToPositionMap[element.value] !== undefined) {\n newSmallValues.push(element);\n newLargeValues.push(element);\n }\n }\n\n this._smallValues = newSmallValues;\n this._largeValues = newLargeValues;\n }\n }, {\n key: \"_cleanHeap\",\n value: function _cleanHeap(\n /*object*/\n heap) {\n while (!heap.empty() && this._valueToPositionMap[heap.peek().value] === undefined) {\n heap.pop();\n }\n }\n }, {\n key: \"_smallerComparator\",\n value: function _smallerComparator(\n /*object*/\n lhs,\n /*object*/\n rhs)\n /*boolean*/\n {\n return lhs.value < rhs.value;\n }\n }, {\n key: \"_greaterComparator\",\n value: function _greaterComparator(\n /*object*/\n lhs,\n /*object*/\n rhs)\n /*boolean*/\n {\n return lhs.value > rhs.value;\n }\n }]);\n\n return IntegerBufferSet;\n}();\n\nvar _default = IntegerBufferSet;\nexports[\"default\"] = _default;","/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PrefixIntervalTree\n * \n * @typechecks\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _invariant = _interopRequireDefault(require('./../../stubs/invariant'));\n\nvar _globalThisPolyfill = _interopRequireDefault(require('./../core/globalThisPolyfill'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar parent = function parent(node) {\n return Math.floor(node / 2);\n};\n\nvar Int32Array = _globalThisPolyfill[\"default\"].Int32Array || function (size) {\n var xs = [];\n\n for (var i = size - 1; i >= 0; --i) {\n xs[i] = 0;\n }\n\n return xs;\n};\n/**\n * Computes the next power of 2 after or equal to x.\n */\n\n\nfunction ceilLog2(x) {\n var y = 1;\n\n while (y < x) {\n y *= 2;\n }\n\n return y;\n}\n/**\n * A prefix interval tree stores an numeric array and the partial sums of that\n * array. It is optimized for updating the values of the array without\n * recomputing all of the partial sums.\n *\n * - O(ln n) update\n * - O(1) lookup\n * - O(ln n) compute a partial sum\n * - O(n) space\n *\n * Note that the sequence of partial sums is one longer than the array, so that\n * the first partial sum is always 0, and the last partial sum is the sum of the\n * entire array.\n */\n\n\nvar PrefixIntervalTree = /*#__PURE__*/function () {\n function PrefixIntervalTree(xs) {\n _classCallCheck(this, PrefixIntervalTree);\n\n /**\n * Number of elements in the array\n *\n * @type {number}\n * @private\n */\n this._size = xs.length;\n /**\n * Half the size of the heap. It is also the number of non-leaf nodes, and the\n * index of the first element in the heap. Always a power of 2.\n *\n * @type {number}\n * @private\n */\n\n this._half = ceilLog2(this._size);\n /**\n * Binary heap\n *\n * @type {!Array.}\n * @const\n * @private\n */\n\n this._heap = new Int32Array(2 * this._half);\n var i;\n\n for (i = 0; i < this._size; ++i) {\n this._heap[this._half + i] = xs[i];\n }\n\n for (i = this._half - 1; i > 0; --i) {\n this._heap[i] = this._heap[2 * i] + this._heap[2 * i + 1];\n }\n }\n\n _createClass(PrefixIntervalTree, [{\n key: \"set\",\n value: function set(index, value) {\n (0, _invariant[\"default\"])(0 <= index && index < this._size, 'Index out of range %s', index);\n var node = this._half + index;\n this._heap[node] = value;\n node = parent(node);\n\n for (; node !== 0; node = parent(node)) {\n this._heap[node] = this._heap[2 * node] + this._heap[2 * node + 1];\n }\n }\n }, {\n key: \"get\",\n value: function get(index) {\n (0, _invariant[\"default\"])(0 <= index && index < this._size, 'Index out of range %s', index);\n var node = this._half + index;\n return this._heap[node];\n }\n }, {\n key: \"getSize\",\n value: function getSize() {\n return this._size;\n }\n /**\n * Returns the sum get(0) + get(1) + ... + get(end - 1).\n */\n\n }, {\n key: \"sumUntil\",\n value: function sumUntil(end) {\n (0, _invariant[\"default\"])(0 <= end && end < this._size + 1, 'Index out of range %s', end);\n\n if (end === 0) {\n return 0;\n }\n\n var node = this._half + end - 1;\n var sum = this._heap[node];\n\n for (; node !== 1; node = parent(node)) {\n if (node % 2 === 1) {\n sum += this._heap[node - 1];\n }\n }\n\n return sum;\n }\n /**\n * Returns the sum get(0) + get(1) + ... + get(inclusiveEnd).\n */\n\n }, {\n key: \"sumTo\",\n value: function sumTo(inclusiveEnd) {\n (0, _invariant[\"default\"])(0 <= inclusiveEnd && inclusiveEnd < this._size, 'Index out of range %s', inclusiveEnd);\n return this.sumUntil(inclusiveEnd + 1);\n }\n /**\n * Returns the sum get(begin) + get(begin + 1) + ... + get(end - 1).\n */\n\n }, {\n key: \"sum\",\n value: function sum(begin, end) {\n (0, _invariant[\"default\"])(begin <= end, 'Begin must precede end');\n return this.sumUntil(end) - this.sumUntil(begin);\n }\n /**\n * Returns the smallest i such that 0 <= i <= size and sumUntil(i) <= t, or\n * -1 if no such i exists.\n */\n\n }, {\n key: \"greatestLowerBound\",\n value: function greatestLowerBound(t) {\n if (t < 0) {\n return -1;\n }\n\n var node = 1;\n\n if (this._heap[node] <= t) {\n return this._size;\n }\n\n while (node < this._half) {\n var leftSum = this._heap[2 * node];\n\n if (t < leftSum) {\n node = 2 * node;\n } else {\n node = 2 * node + 1;\n t -= leftSum;\n }\n }\n\n return node - this._half;\n }\n /**\n * Returns the smallest i such that 0 <= i <= size and sumUntil(i) < t, or\n * -1 if no such i exists.\n */\n\n }, {\n key: \"greatestStrictLowerBound\",\n value: function greatestStrictLowerBound(t) {\n if (t <= 0) {\n return -1;\n }\n\n var node = 1;\n\n if (this._heap[node] < t) {\n return this._size;\n }\n\n while (node < this._half) {\n var leftSum = this._heap[2 * node];\n\n if (t <= leftSum) {\n node = 2 * node;\n } else {\n node = 2 * node + 1;\n t -= leftSum;\n }\n }\n\n return node - this._half;\n }\n /**\n * Returns the smallest i such that 0 <= i <= size and t <= sumUntil(i), or\n * size + 1 if no such i exists.\n */\n\n }, {\n key: \"leastUpperBound\",\n value: function leastUpperBound(t) {\n return this.greatestStrictLowerBound(t) + 1;\n }\n /**\n * Returns the smallest i such that 0 <= i <= size and t < sumUntil(i), or\n * size + 1 if no such i exists.\n */\n\n }, {\n key: \"leastStrictUpperBound\",\n value: function leastStrictUpperBound(t) {\n return this.greatestLowerBound(t) + 1;\n }\n }], [{\n key: \"uniform\",\n value: function uniform(size, initialValue) {\n var xs = [];\n\n for (var i = size - 1; i >= 0; --i) {\n xs[i] = initialValue;\n }\n\n return new PrefixIntervalTree(xs);\n }\n }, {\n key: \"empty\",\n value: function empty(size) {\n return PrefixIntervalTree.uniform(size, 0);\n }\n }]);\n\n return PrefixIntervalTree;\n}();\n\nvar _default = PrefixIntervalTree;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _emptyFunction = _interopRequireDefault(require('./../core/emptyFunction'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n\n return {\n remove: _emptyFunction[\"default\"]\n };\n }\n },\n registerDefault: function registerDefault() {}\n};\nvar _default = EventListener;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule cx\n */\nvar slashReplaceRegex = /\\//g;\nvar cache = {};\n\nfunction getClassName(className) {\n if (cache[className]) {\n return cache[className];\n }\n\n cache[className] = className.replace(slashReplaceRegex, '_');\n return cache[className];\n}\n/**\n * This function is used to mark string literals representing CSS class names\n * so that they can be transformed statically. This allows for modularization\n * and minification of CSS class names.\n *\n * In static_upstream, this function is actually implemented, but it should\n * eventually be replaced with something more descriptive, and the transform\n * that is used in the main stack should be ported for use elsewhere.\n *\n * @param string|object className to modularize, or an object of key/values.\n * In the object case, the values are conditions that\n * determine if the className keys should be included.\n * @param [string ...] Variable list of classNames in the string case.\n * @return string Renderable space-separated CSS className.\n */\n\n\nfunction cx(classNames) {\n var classNamesArray;\n\n if (_typeof(classNames) == 'object') {\n classNamesArray = Object.keys(classNames).filter(function (className) {\n return classNames[className];\n });\n } else {\n classNamesArray = Array.prototype.slice.call(arguments);\n }\n\n return classNamesArray.map(getClassName).join(' ');\n}\n\nvar _default = cx;\nexports[\"default\"] = _default;","module.exports = require('./internal/FixedDataTableRoot');\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nmodule.exports = baseInRange;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nmodule.exports = defaultTo;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseInRange = require('./_baseInRange'),\n toFinite = require('./toFinite'),\n toNumber = require('./toNumber');\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nmodule.exports = inRange;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.40\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.40\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 {\n const dispatchedReducer = (0, _react.useRef)({});\n let currentDispatchedReducer = dispatchedReducer.current;\n const {\n myClass\n } = theDo;\n if (!currentDispatchedReducer[myClass]) {\n currentDispatchedReducer[myClass] = {};\n }\n let currentDispatched = currentDispatchedReducer[myClass];\n let nodes = {};\n const [state, dispatch] = (0, _thunkReducer.default)(theDo.default, {\n myClass,\n doMe: currentDispatched,\n nodes\n });\n Object.keys(theDo).filter(each => each !== 'default' && each !== 'myClass').reduce((val, each) => {\n // @ts-ignore because default and myClass are already filtered, the rest are ActionFunc\n let action = theDo[each];\n val[each] = (...params) => dispatch(action(...params));\n return val;\n }, currentDispatched);\n return [state, currentDispatched];\n};\n\n/*************\n * Reducer Default Functions\n *************/\n\n/*****\n * init\n *****/\n/***\n * init\n * params: myClass\n * doMe\n * parentID\n * doParent\n * links: [{id, myClass, do}]\n * ...params\n */\nexports.useReducer = useReducer;\nconst init = (params, myuuidv4) => {\n return async (dispatch, getClassState) => {\n let myID = params.myID || genUUID(myuuidv4);\n const {\n parentID,\n doParent,\n state\n } = params;\n dispatch(initCore(myID, parentID, doParent, state));\n const {\n myClass,\n doMe\n } = getClassState();\n\n // parent or root\n if (parentID && doParent) {\n doParent.addChild(parentID, {\n id: myID,\n theClass: myClass,\n do: doMe\n });\n } else {\n dispatch(setRoot(myID));\n }\n };\n};\nexports.init = init;\nconst INIT = 'react-reducer-state/INIT';\nconst initCore = (myID, parentID, doParent, state) => {\n return {\n myID,\n type: INIT,\n parentID,\n doParent,\n state\n };\n};\nconst reduceInit = (state, action) => {\n let {\n myID,\n parentID,\n doParent,\n state: theState\n } = action;\n theState = theState || {};\n let me = {\n id: myID,\n state: theState,\n _children: {},\n _links: {}\n };\n if (parentID) {\n me._parent = {\n id: parentID,\n do: doParent,\n theClass: ''\n };\n }\n let newNodes = Object.assign({}, state.nodes, {\n [myID]: me\n });\n let newState = Object.assign({}, state, {\n nodes: newNodes\n });\n return newState;\n};\n\n/***\n * setRoot\n */\nconst SET_ROOT = 'react-reducer-state/SET_ROOT';\nconst setRoot = myID => ({\n myID,\n type: SET_ROOT\n});\nconst reduceSetRoot = (state, action) => {\n const {\n myID\n } = action;\n return Object.assign({}, state, {\n root: myID\n });\n};\n\n/***\n * addChild\n */\nconst ADD_CHILD = 'react-reducer-state/ADD_CHILD';\nconst addChild = (myID, child) => ({\n myID,\n type: ADD_CHILD,\n relative: child\n});\nexports.addChild = addChild;\nconst reduceAddChild = (state, action) => {\n return reduceAddRelative(state, action, '_children');\n};\n\n/***\n * addLink\n */\nconst addLink = (myID, link, isFromLink = false) => {\n return async (dispatch, getClassState) => {\n dispatch(addLinkCore(myID, link));\n if (!isFromLink) {\n // I connect to the other, would like the other to connect to me as well.\n const {\n doMe,\n myClass\n } = getClassState();\n link.do.addLink(link.id, {\n id: myID,\n theClass: myClass,\n do: doMe\n }, true);\n }\n };\n};\nexports.addLink = addLink;\nconst ADD_LINK = 'react-reducer-state/ADD_LINK';\nconst addLinkCore = (myID, link) => ({\n myID,\n type: ADD_LINK,\n relative: link\n});\nconst reduceAddLink = (state, action) => {\n return reduceAddRelative(state, action, '_links');\n};\nconst reduceAddRelative = (state, action, relativeName) => {\n const {\n myID,\n relative\n } = action;\n let me = state.nodes[myID];\n if (!me) {\n return state;\n }\n const {\n theClass,\n id: theID,\n do: theDo\n } = relative;\n let relatives = me[relativeName] || {};\n let relativesByClass = relatives[theClass] || {};\n let relativeIDs = relativesByClass.list || [];\n let newIDs = theID ? relativeIDs.concat([theID]) : relativeIDs;\n let newRelatives = Object.assign({}, me[relativeName], {\n [theClass]: {\n list: newIDs,\n do: theDo\n }\n });\n let newMe = Object.assign({}, me, {\n [relativeName]: newRelatives\n });\n let newNodes = Object.assign({}, state.nodes, {\n [myID]: newMe\n });\n let newState = Object.assign({}, state, {\n nodes: newNodes\n });\n return newState;\n};\n\n/*****\n * remove\n *****/\n/***\n * remove\n * params: myID\n * isFromParent\n */\nconst remove = (myID, isFromParent = false) => {\n return async (dispatch, getClassState) => {\n let state = getClassState();\n const {\n myClass,\n nodes: {\n [myID]: me\n }\n } = state;\n if (!me) {\n return;\n }\n\n // parent removes me\n let parent = me._parent;\n if (!isFromParent && parent) {\n const {\n id: parentID,\n do: doParent\n } = parent;\n if (parentID) {\n doParent.removeChild(parentID, myID, myClass, true);\n }\n }\n\n // remove children\n let children = me._children;\n if (children) {\n let realChildren = children;\n Object.keys(realChildren).map(eachClass => {\n let child = realChildren[eachClass];\n child.list.map(eachID => dispatch(removeChild(myID, eachID, eachClass, false)));\n });\n }\n\n // remove links\n let links = me._links || {};\n Object.keys(links).map(eachClass => {\n let link = links[eachClass];\n link.list.map(eachID => dispatch(removeLink(myID, eachID, eachClass, false)));\n });\n\n // remove me from myClass list\n dispatch(removeCore(myID));\n };\n};\nexports.remove = remove;\nconst REMOVE = 'react-reducer-state/REMOVE';\nconst removeCore = myID => ({\n myID,\n type: REMOVE\n});\nconst reduceRemove = (state, action) => {\n const {\n myID\n } = action;\n let me = state.nodes[myID];\n if (!me) {\n return state;\n }\n let newNodes = Object.keys(state.nodes).filter(each => each !== myID).reduce((r, x) => {\n r[x] = state.nodes[x];\n return r;\n }, {});\n\n // root\n let newState = Object.assign({}, state, {\n nodes: newNodes\n });\n if (newState.root === myID) {\n delete newState.root;\n }\n return newState;\n};\n\n/***\n * remove-child\n */\nconst removeChild = (myID, childID, childClass, isFromChild = false) => {\n return async (dispatch, getClassState) => {\n let relationRemove = theDo => theDo.remove(childID, true);\n removeRelation(dispatch, getClassState, myID, childID, childClass, isFromChild, relationRemove, removeChildCore, '_children');\n };\n};\nexports.removeChild = removeChild;\nconst REMOVE_CHILD = 'react-reducer-state/REMOVE_CHILD';\nconst removeChildCore = (myID, childID, childClass) => ({\n myID,\n type: REMOVE_CHILD,\n childID,\n childClass\n});\nconst reduceRemoveChild = (state, action) => {\n const {\n myID,\n childID,\n childClass\n } = action;\n return reduceRemoveRelation(state, myID, childID, childClass, '_children');\n};\n\n/***\n * remove-link\n */\nconst removeLink = (myID, linkID, linkClass, isFromLink = false) => {\n return async (dispatch, getClassState) => {\n let myClass = getClassState().myClass;\n let relationRemove = theDo => theDo.removeLink(linkID, myID, myClass, true);\n removeRelation(dispatch, getClassState, myID, linkID, linkClass, isFromLink, relationRemove, removeLinkCore, '_links');\n };\n};\nexports.removeLink = removeLink;\nconst REMOVE_LINK = 'react-reducer-state/REMOVE_LINK';\nconst removeLinkCore = (myID, linkID, linkClass) => ({\n myID,\n type: REMOVE_LINK,\n linkID,\n linkClass\n});\nconst reduceRemoveLink = (state, action) => {\n const {\n myID,\n linkID,\n linkClass\n } = action;\n return reduceRemoveRelation(state, myID, linkID, linkClass, '_links');\n};\n\n/***\n * remove-relation\n */\n\nconst removeRelation = (dispatch, getClassState, myID, relationID, relationClass, isFromRelation, relationRemove, removeRelationCore, relationName) => {\n let state = getClassState();\n let me = state.nodes[myID];\n if (!me) {\n return;\n }\n let relation = me[relationName];\n if (!relation) {\n return;\n }\n let relationByClass = relation[relationClass];\n if (!relationByClass) {\n return;\n }\n let newIDs = relationByClass.list.filter(eachID => eachID !== relationID);\n if (relationByClass.list.length === newIDs.length) return;\n if (!isFromRelation) {\n relationRemove(relationByClass.do);\n }\n dispatch(removeRelationCore(myID, relationID, relationClass));\n};\nconst reduceRemoveRelation = (state, myID, relationID, relationClass, relationName) => {\n let me = state.nodes[myID];\n if (!me) return state;\n let relation = me[relationName];\n if (!relation) return state;\n let relationByClass = relation[relationClass];\n if (!relationByClass) return state;\n let relationIDs = relationByClass.list || [];\n let newIDs = relationIDs.filter(eachID => eachID !== relationID);\n if (relationIDs.length === newIDs.length) return state;\n let newRelation = Object.assign({}, relation);\n if (newIDs.length == 0) {\n delete newRelation[relationClass];\n } else {\n let newRelationByClass = Object.assign({}, relationByClass, {\n list: newIDs\n });\n newRelation[relationClass] = newRelationByClass;\n }\n let newMe = Object.assign({}, me, {\n [relationName]: newRelation\n });\n let newNodes = Object.assign({}, state.nodes, {\n [myID]: newMe\n });\n let newState = Object.assign({}, state, {\n nodes: newNodes\n });\n return newState;\n};\n\n/*****\n * set data\n *****/\n/***\n * setData\n * params: myID\n * data\n */\nconst SET_DATA = 'react-reducer-state/SET_DATA';\nconst setData = (myID, data) => ({\n myID,\n type: SET_DATA,\n data\n});\nexports.setData = setData;\nconst reduceSetData = (state, action) => {\n const {\n myID,\n data\n } = action;\n let me = state.nodes[myID];\n if (!me) return state;\n let newMyState = Object.assign({}, me.state, data);\n let newMe = Object.assign({}, me, {\n state: newMyState\n });\n let newNodes = Object.assign({}, state.nodes, {\n [myID]: newMe\n });\n let newState = Object.assign({}, state, {\n nodes: newNodes\n });\n return newState;\n};\n\n/*****\n * createReducer\n *****/\n\n// theReduceMap\nconst defaultReduceMap_f = () => ({\n [INIT]: reduceInit,\n [ADD_CHILD]: reduceAddChild,\n [ADD_LINK]: reduceAddLink,\n [REMOVE]: reduceRemove,\n [REMOVE_CHILD]: reduceRemoveChild,\n [REMOVE_LINK]: reduceRemoveLink,\n [SET_DATA]: reduceSetData,\n [SET_ROOT]: reduceSetRoot\n});\n\n/***\n * createReducer\n * params: reduceMap\n */\nconst createReducer = reduceMap => {\n return (state, action) => {\n if (!action) {\n return state;\n }\n\n // @ts-ignore because all the action in reduceMap are BaseAction\n let baseAction = action;\n if (reduceMap && reduceMap[baseAction.type]) {\n return reduceMap[baseAction.type](state, baseAction);\n }\n let defaultReduceMap = defaultReduceMap_f();\n if (defaultReduceMap[baseAction.type]) {\n return defaultReduceMap[baseAction.type](state, baseAction);\n }\n return state;\n };\n};\n\n/***\n * Retrieving state\n ***/\nexports.createReducer = createReducer;\nconst getRootNode = state => {\n let root = state.root;\n if (!root) {\n return null;\n }\n return state.nodes[root] || null;\n};\nexports.getRootNode = getRootNode;\nconst getRootID = state => {\n return state.root || '';\n};\nexports.getRootID = getRootID;\nconst getRoot = state => {\n let root = state.root;\n if (!root) {\n return null;\n }\n let me = state.nodes[root];\n if (!me) {\n return null;\n }\n return me.state;\n};\nexports.getRoot = getRoot;\nconst getNode = (state, myID) => {\n return state.nodes[myID] || null;\n};\nexports.getNode = getNode;\nconst getState = (state, myID) => {\n let me = state.nodes[myID];\n if (!me) {\n return null;\n }\n return me.state;\n};\nexports.getState = getState;\nconst getChildIDs = (me, childClass) => {\n return getRelativeIDs(me, childClass, '_children');\n};\nexports.getChildIDs = getChildIDs;\nconst getRelativeIDs = (me, relativeClass, relativeName) => {\n let relatives = me[relativeName];\n if (!relatives) {\n return [];\n }\n let relativesByClass = relatives[relativeClass];\n if (!relativesByClass) {\n return [];\n }\n return relativesByClass.list;\n};\nconst getChildID = (me, childClass) => {\n return getRelativeID(me, childClass, '_children');\n};\nexports.getChildID = getChildID;\nconst getRelativeID = (me, relativeClass, relativeName) => {\n let ids = getRelativeIDs(me, relativeClass, relativeName);\n return ids.length ? ids[0] : '';\n};\nconst getLinkIDs = (me, linkClass) => {\n return getRelativeIDs(me, linkClass, '_links');\n};\nexports.getLinkIDs = getLinkIDs;\nconst getLinkID = (me, linkClass) => {\n return getRelativeID(me, linkClass, '_links');\n};\n\n/***\n * Utils\n ***/\nexports.getLinkID = getLinkID;\nconst _GLOBAL_IDS = new Set();\nconst _GEN_UUID_COUNT = 3;\nconst _GEN_UUID_STATE = {\n iterate: 1\n};\nconst genUUID = myuuidv4 => {\n let theID = '';\n let isAdd = false;\n for (let i = 0; i < _GEN_UUID_COUNT; i++) {\n theID = genUUIDCore(myuuidv4);\n if (_GLOBAL_IDS.has(theID)) {\n continue;\n }\n _GLOBAL_IDS.add(theID);\n isAdd = true;\n break;\n }\n if (isAdd) {\n return theID;\n }\n _GEN_UUID_STATE.iterate += 1;\n theID = genUUIDCore();\n return theID;\n};\nexports.genUUID = genUUID;\nconst genUUIDCore = myuuidv4 => {\n let theID = '';\n let myuuid = myuuidv4 ? myuuidv4 : _uuid.v4;\n for (let j = 0; j < _GEN_UUID_STATE.iterate; j++) {\n theID += myuuid();\n }\n return theID;\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.useThunkReducer = exports.default = void 0;\nvar _react = require(\"react\");\n//https://medium.com/solute-labs/configuring-thunk-action-creators-and-redux-dev-tools-with-reacts-usereducer-hook-5a1608476812\n//https://github.com/nathanbuchar/react-hook-thunk-reducer/blob/master/src/thunk-reducer.js\n//\n//The built-in useReducer does not immediately evaluate the dispatch if called within useEffect.\n//Sometimes we do want such immediate evaluation feature for easier implementation.\n//(We don't want lots of useEffect in the components.)\n\n/**\n * useThunkReducer\n *\n * Augments React's useReducer() hook so that the action\n * dispatcher supports thunks.\n *\n * @param {Function} reducer\n * @param {S} initArg\n * @param {Function} [init]\n * @returns {[S, Dispatch]}\n */\nconst useThunkReducer = (reducer, initArg, init = s => s) => {\n const [hookState, setHookState] = (0, _react.useState)(() => init(initArg));\n\n // State management.\n const state = (0, _react.useRef)(hookState);\n const getState = (0, _react.useCallback)(() => state.current, [state]);\n const setState = (0, _react.useCallback)(newState => {\n state.current = newState;\n setHookState(newState);\n }, [state, setHookState]);\n\n // Reducer.\n const reduce = (0, _react.useCallback)(action => {\n return reducer(getState(), action);\n }, [reducer, getState]);\n\n // augmented dispatcher.\n const dispatch = (0, _react.useCallback)(action => {\n return typeof action === 'function'\n // @ts-ignore because action is function\n ? action(dispatch, getState) : setState(reduce(action));\n }, [getState, setState, reduce]);\n return [hookState, dispatch];\n};\nexports.useThunkReducer = useThunkReducer;\nvar _default = useThunkReducer;\nexports.default = _default;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 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, legacy_createStore };\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function get() {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function get() {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function get() {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function get() {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function get() {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function get() {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function get() {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function get() {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nvar _default = {\n randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"4453cc82\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"demo-pttbbs:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdemo_pttbbs\"] = self[\"webpackChunkdemo_pttbbs\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","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","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n if (listener) {\n listener({ action, location: getCurrentLocation() });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning(cond: any, message: string) {\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 history!\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\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport function createClientSideURL(location: Location | string): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n typeof window !== \"undefined\" &&\n typeof window.location !== \"undefined\" &&\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n let href = typeof location === \"string\" ? location : createPath(location);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function handlePop() {\n action = Action.Pop;\n if (listener) {\n listener({ action, location: history.location });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createClientSideURL(\n typeof to === \"string\" ? to : createPath(to)\n );\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\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 type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\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.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\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 RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\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: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | 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(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\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 // Our types know better, but runtime JS may not!\n // @ts-expect-error\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({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\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 ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\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 // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string;\n } = {} as any\n): string {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\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 path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n return path\n .replace(/^:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/:(\\w+)/g, (_, key: PathParam) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return `/${params[key]!}`;\n })\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n });\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/utils/match-path\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 if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\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 * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function 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\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\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 getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\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 if (isPathRelative || 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\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function 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\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeys: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscriber?: (aborted: boolean) => void = undefined;\n data: Record;\n\n constructor(data: Record) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n }\n\n private trackPromise(\n key: string | number,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string | number,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn: (aborted: boolean) => void) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport function defer(data: Record) {\n return new DeferredData(data);\n}\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n createClientSideURL,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): void;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n let initialScrollRestored = false;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location }) =>\n startNavigation(historyAction, location)\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a submission\n // - We're past the submitting state and into the loading state\n // - The location we've finished loading is different from the submission\n // location, indicating we redirected from the action (avoids false\n // positives for loading/submissionRedirect when actionData returned\n // on a prior submission)\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n state.navigation.state === \"loading\" &&\n state.navigation.formAction?.split(\"?\")[0] === location.pathname;\n\n // Always preserve any existing loaderData from re-used routes\n let newLoaderData = newState.loaderData\n ? {\n loaderData: mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || []\n ),\n }\n : {};\n\n updateState({\n // Clear existing actionData on any completed navigation beyond the original\n // action, unless we're currently finishing the loading/actionReload state.\n // Do this prior to spreading in newState in case we got back to back actions\n ...(isActionReload ? {} : { actionData: null }),\n ...newState,\n ...newLoaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData\n ? false\n : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset,\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let location = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n location = {\n ...location,\n ...init.history.encodeLocation(location),\n };\n\n let historyAction =\n (opts && opts.replace) === true ||\n (submission != null && isMutationMethod(submission.formMethod))\n ? HistoryAction.Replace\n : HistoryAction.Push;\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n return await startNavigation(historyAction, location, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n await startRedirectNavigation(\n state,\n result,\n opts && opts.replace === true\n );\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: mergeLoaderData(state.loaderData, {}, matches),\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n actionData: pendingActionData || null,\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n updateState({\n navigation: loadingNavigation,\n actionData: pendingActionData || state.actionData || null,\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, replace);\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult);\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported or fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n replace?: boolean\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location);\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n // Check if this an external redirect that goes to a new origin\n if (typeof window?.location !== \"undefined\") {\n let newOrigin = createClientSideURL(redirect.location).origin;\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n formMethod &&\n isMutationMethod(formMethod) &&\n formEncType &&\n formData\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n formMethod,\n formAction: redirect.location,\n formEncType,\n formData,\n },\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: formMethod || undefined,\n formAction: formAction || undefined,\n formEncType: formEncType || undefined,\n formData: formData || undefined,\n },\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createClientSideRequest(href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport function unstable_createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to unstable_createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n let routeData = [result.actionData, result.loaderData].find((v) => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !routeMatch?.route.loader) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n loaderData: {},\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n results.forEach((result) => {\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n });\n\n // Process and commit output from loaders\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError\n );\n\n return {\n ...context,\n matches,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400),\n };\n }\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : null;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = createClientSideURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createClientSideURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n let isAbsolute =\n /^[a-z+]+:\\/\\//i.test(location) || location.startsWith(\"//\");\n\n // Support relative routing in internal redirects\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n if (contentType && contentType.startsWith(\"application/json\")) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = createClientSideURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds?: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here\n if (pendingError) {\n errors = pendingError;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key, , match] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n throw new Error(\"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[]\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n matches.forEach((match) => {\n let id = match.route.id;\n if (newLoaderData[id] === undefined && loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n });\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else {\n errorMessage = \"Cannot submit binary form data using GET\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\n// Contexts for data routers\nexport const DataStaticRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataStaticRouterContext.displayName = \"DataStaticRouterContext\";\n}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\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 interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n DataStaticRouterContext,\n} from \"./context\";\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/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): 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, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : 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/hooks/use-in-router-context\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/hooks/use-location\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\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/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern 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/hooks/use-match\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\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/hooks/use-navigate\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 getPathContributingMatches(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 options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\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/hooks/use-outlet-context\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/hooks/use-outlet\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/hooks/use-params\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/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\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/hooks/use-routes\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 { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\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\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 let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n return (\n <>\n

Unhandled Thrown Error!

\n

{message}

\n {stack ?
{stack}
: null}\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors by\n providing your own \n errorElement props on \n <Route>\n

\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataStaticRouterContext = React.useContext(DataStaticRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataStaticRouterContext && match.route.errorElement) {\n dataStaticRouterContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = dataRouterState\n ? match.route.errorElement || \n : null;\n let getChildren = () => (\n \n {error\n ? errorElement\n : match.route.element !== undefined\n ? match.route.element\n : outlet}\n \n );\n // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n return dataRouterState && (match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useLoaderData must be used inside a RouteContext`);\n\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `useLoaderData can only be used on routes that contain a unique \"id\"`\n );\n\n return state.loaderData[thisRoute.route.id];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let route = React.useContext(RouteContext);\n let thisRoute = route.matches[route.matches.length - 1];\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n invariant(route, `useRouteError must be used inside a RouteContext`);\n invariant(\n thisRoute.route.id,\n `useRouteError can only be used on routes that contain a unique \"id\"`\n );\n\n // Otherwise look for errors from our data router state\n return state.errors?.[thisRoute.route.id];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n invariant,\n parsePath,\n stripBasename,\n warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n () => router.state,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n return (\n \n \n \n {router.state.initialized ? : fallbackElement}\n
\n \n \n );\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/router-components/memory-router\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({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\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 relative?: RelativeRoutingType;\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/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: 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 dataRouterState = React.useContext(DataRouterStateContext);\n let navigate = useNavigate();\n\n React.useEffect(() => {\n // Avoid kicking off multiple navigations if we're in the middle of a\n // data-router navigation, since components get re-rendered when we enter\n // a submitting/loading state\n if (dataRouterState && dataRouterState.navigation.state !== \"idle\") {\n return;\n }\n navigate(to, { replace, state, relative });\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/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): 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/router-components/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 // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\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/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n let dataRouterContext = React.useContext(DataRouterContext);\n // When in a DataRouterContext _without_ children, we use the router routes\n // directly. If we have children, then we're in a descendant tree and we\n // need to use child routes.\n let routes =\n dataRouterContext && !children\n ? (dataRouterContext.router.routes as DataRouteObject[])\n : createRoutesFromChildren(children);\n return useRoutes(routes, location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited): React.ReactElement;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n \n {children}\n \n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \" caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return ;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return ;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on \n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n if (typeof children === \"function\") {\n return children(data);\n }\n return <>{children};\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/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\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, parentPath)\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 invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let treePath = [...parentPath, index];\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n hasErrorBoundary: element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\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\n/**\n * @private\n * Walk the route tree and add hasErrorBoundary if it's not provided, so that\n * users providing manual route arrays can just specify errorElement\n */\nexport function enhanceManualRouteObjects(\n routes: RouteObject[]\n): RouteObject[] {\n return routes.map((route) => {\n let routeClone = { ...route };\n if (routeClone.hasErrorBoundary == null) {\n routeClone.hasErrorBoundary = routeClone.errorElement != null;\n }\n if (routeClone.children) {\n routeClone.children = enhanceManualRouteObjects(routeClone.children);\n }\n return routeClone;\n });\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_enhanceManualRouteObjects as enhanceManualRouteObjects,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n invariant,\n joinPaths,\n ErrorResponse,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\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_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_DataStaticRouterContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_enhanceManualRouteObjects,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region 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, v5Compat: true });\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, v5Compat: true });\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\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\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 {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let href = useHref(to, { relative });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\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; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\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 path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\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 isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\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 = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n \n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `
` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler;\n}\n\n/**\n * A `@remix-run/router`-aware ``. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef(\n (props, ref) => {\n return ;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n submit(submitter || event.currentTarget, { method, replace, relative });\n };\n\n return (\n \n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\ninterface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\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 preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (shouldProcessLinkClick(event, target)) {\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 unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\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 () =>\n getSearchParamsForLocation(\n location.search,\n defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `` to be submitted to the server, a specific\n * `\n * \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n return componentOrElement != null ? componentOrElement : null;\n}","import React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n addEndListener,\n children,\n childRef,\n ...props\n}, ref) => {\n const nodeRef = useRef(null);\n const mergedRef = useMergedRefs(nodeRef, childRef);\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const normalize = callback => param => {\n if (callback && nodeRef.current) {\n callback(nodeRef.current, param);\n }\n };\n\n /* eslint-disable react-hooks/exhaustive-deps */\n const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n const handleExit = useCallback(normalize(onExit), [onExit]);\n const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n const handleExited = useCallback(normalize(onExited), [onExited]);\n const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return /*#__PURE__*/_jsx(Transition, {\n ref: ref,\n ...props,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n children: typeof children === 'function' ? (status, innerProps) => children(status, {\n ...innerProps,\n ref: attachRef\n }) : /*#__PURE__*/React.cloneElement(children, {\n ref: attachRef\n })\n });\n});\nexport default TransitionWrapper;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { ENTERED, ENTERING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false\n};\nconst fadeStyles = {\n [ENTERING]: 'show',\n [ENTERED]: 'show'\n};\nconst Fade = /*#__PURE__*/React.forwardRef(({\n className,\n children,\n transitionClasses = {},\n ...props\n}, ref) => {\n const handleEnter = useCallback((node, isAppearing) => {\n triggerBrowserReflow(node);\n props.onEnter == null ? void 0 : props.onEnter(node, isAppearing);\n }, [props]);\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n ...props,\n onEnter: handleEnter,\n childRef: children.ref,\n children: (status, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames('fade', className, children.props.className, fadeStyles[status], transitionClasses[status])\n })\n });\n});\nFade.defaultProps = defaultProps;\nFade.displayName = 'Fade';\nexport default Fade;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport BaseOverlay from '@restart/ui/Overlay';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useOverlayOffset from './useOverlayOffset';\nimport Fade from './Fade';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n transition: Fade,\n rootClose: false,\n show: false,\n placement: 'top'\n};\nfunction wrapRefs(props, arrowProps) {\n const {\n ref\n } = props;\n const {\n ref: aRef\n } = arrowProps;\n props.ref = ref.__wrapped || (ref.__wrapped = r => ref(safeFindDOMNode(r)));\n arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = r => aRef(safeFindDOMNode(r)));\n}\nconst Overlay = /*#__PURE__*/React.forwardRef(({\n children: overlay,\n transition,\n popperConfig = {},\n ...outerProps\n}, outerRef) => {\n const popperRef = useRef({});\n const [firstRenderedState, setFirstRenderedState] = useCallbackRef();\n const [ref, modifiers] = useOverlayOffset(outerProps.offset);\n const mergedRef = useMergedRefs(outerRef, ref);\n const actualTransition = transition === true ? Fade : transition || undefined;\n const handleFirstUpdate = useEventCallback(state => {\n setFirstRenderedState(state);\n popperConfig == null ? void 0 : popperConfig.onFirstUpdate == null ? void 0 : popperConfig.onFirstUpdate(state);\n });\n useIsomorphicEffect(() => {\n if (firstRenderedState) {\n popperRef.current.scheduleUpdate == null ? void 0 : popperRef.current.scheduleUpdate();\n }\n }, [firstRenderedState]);\n return /*#__PURE__*/_jsx(BaseOverlay, {\n ...outerProps,\n ref: mergedRef,\n popperConfig: {\n ...popperConfig,\n modifiers: modifiers.concat(popperConfig.modifiers || []),\n onFirstUpdate: handleFirstUpdate\n },\n transition: actualTransition,\n children: (overlayProps, {\n arrowProps,\n popper: popperObj,\n show\n }) => {\n var _popperObj$state, _popperObj$state$modi;\n wrapRefs(overlayProps, arrowProps);\n // Need to get placement from popper object, handling case when overlay is flipped using 'flip' prop\n const updatedPlacement = popperObj == null ? void 0 : popperObj.placement;\n const popper = Object.assign(popperRef.current, {\n state: popperObj == null ? void 0 : popperObj.state,\n scheduleUpdate: popperObj == null ? void 0 : popperObj.update,\n placement: updatedPlacement,\n outOfBoundaries: (popperObj == null ? void 0 : (_popperObj$state = popperObj.state) == null ? void 0 : (_popperObj$state$modi = _popperObj$state.modifiersData.hide) == null ? void 0 : _popperObj$state$modi.isReferenceHidden) || false\n });\n if (typeof overlay === 'function') return overlay({\n ...overlayProps,\n placement: updatedPlacement,\n show,\n ...(!transition && show && {\n className: 'show'\n }),\n popper,\n arrowProps\n });\n return /*#__PURE__*/React.cloneElement(overlay, {\n ...overlayProps,\n placement: updatedPlacement,\n arrowProps,\n popper,\n className: classNames(overlay.props.className, !transition && show && 'show'),\n style: {\n ...overlay.props.style,\n ...overlayProps.style\n }\n });\n }\n });\n});\nOverlay.displayName = 'Overlay';\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","import { useMemo, useRef } from 'react';\nimport hasClass from 'dom-helpers/hasClass';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Popover from './Popover';\n\n// This is meant for internal use.\n// This applies a custom offset to the overlay if it's a popover.\nexport default function useOverlayOffset(customOffset) {\n const overlayRef = useRef(null);\n const popoverClass = useBootstrapPrefix(undefined, 'popover');\n const offset = useMemo(() => ({\n name: 'offset',\n options: {\n offset: () => {\n if (overlayRef.current && hasClass(overlayRef.current, popoverClass)) {\n return customOffset || Popover.POPPER_OFFSET;\n }\n return customOffset || [0, 0];\n }\n }\n }), [customOffset, popoverClass]);\n return [overlayRef, [offset]];\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import contains from 'dom-helpers/contains';\nimport * as React from 'react';\nimport { cloneElement, useCallback, useRef } from 'react';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport warning from 'warning';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport Overlay from './Overlay';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction normalizeDelay(delay) {\n return delay && typeof delay === 'object' ? delay : {\n show: delay,\n hide: delay\n };\n}\n\n// Simple implementation of mouseEnter and mouseLeave.\n// React's built version is broken: https://github.com/facebook/react/issues/4251\n// for cases when the trigger is disabled and mouseOut/Over can cause flicker\n// moving from one child element to another.\nfunction handleMouseOverOut(\n// eslint-disable-next-line @typescript-eslint/no-shadow\nhandler, args, relatedNative) {\n const [e] = args;\n const target = e.currentTarget;\n const related = e.relatedTarget || e.nativeEvent[relatedNative];\n if ((!related || related !== target) && !contains(target, related)) {\n handler(...args);\n }\n}\nconst defaultProps = {\n defaultShow: false,\n trigger: ['hover', 'focus']\n};\nfunction OverlayTrigger({\n trigger,\n overlay,\n children,\n popperConfig = {},\n show: propsShow,\n defaultShow = false,\n onToggle,\n delay: propsDelay,\n placement,\n flip = placement && placement.indexOf('auto') !== -1,\n ...props\n}) {\n const triggerNodeRef = useRef(null);\n const mergedRef = useMergedRefs(triggerNodeRef, children.ref);\n const timeout = useTimeout();\n const hoverStateRef = useRef('');\n const [show, setShow] = useUncontrolledProp(propsShow, defaultShow, onToggle);\n const delay = normalizeDelay(propsDelay);\n const {\n onFocus,\n onBlur,\n onClick\n } = typeof children !== 'function' ? React.Children.only(children).props : {};\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const handleShow = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'show';\n if (!delay.show) {\n setShow(true);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'show') setShow(true);\n }, delay.show);\n }, [delay.show, setShow, timeout]);\n const handleHide = useCallback(() => {\n timeout.clear();\n hoverStateRef.current = 'hide';\n if (!delay.hide) {\n setShow(false);\n return;\n }\n timeout.set(() => {\n if (hoverStateRef.current === 'hide') setShow(false);\n }, delay.hide);\n }, [delay.hide, setShow, timeout]);\n const handleFocus = useCallback((...args) => {\n handleShow();\n onFocus == null ? void 0 : onFocus(...args);\n }, [handleShow, onFocus]);\n const handleBlur = useCallback((...args) => {\n handleHide();\n onBlur == null ? void 0 : onBlur(...args);\n }, [handleHide, onBlur]);\n const handleClick = useCallback((...args) => {\n setShow(!show);\n onClick == null ? void 0 : onClick(...args);\n }, [onClick, setShow, show]);\n const handleMouseOver = useCallback((...args) => {\n handleMouseOverOut(handleShow, args, 'fromElement');\n }, [handleShow]);\n const handleMouseOut = useCallback((...args) => {\n handleMouseOverOut(handleHide, args, 'toElement');\n }, [handleHide]);\n const triggers = trigger == null ? [] : [].concat(trigger);\n const triggerProps = {\n ref: attachRef\n };\n if (triggers.indexOf('click') !== -1) {\n triggerProps.onClick = handleClick;\n }\n if (triggers.indexOf('focus') !== -1) {\n triggerProps.onFocus = handleFocus;\n triggerProps.onBlur = handleBlur;\n }\n if (triggers.indexOf('hover') !== -1) {\n process.env.NODE_ENV !== \"production\" ? warning(triggers.length > 1, '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the visibility of the overlay to just mouse users. Consider also including the `\"focus\"` trigger so that touch and keyboard only users can see the overlay as well.') : void 0;\n triggerProps.onMouseOver = handleMouseOver;\n triggerProps.onMouseOut = handleMouseOut;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [typeof children === 'function' ? children(triggerProps) : /*#__PURE__*/cloneElement(children, triggerProps), /*#__PURE__*/_jsx(Overlay, {\n ...props,\n show: show,\n onHide: handleHide,\n flip: flip,\n placement: placement,\n popperConfig: popperConfig,\n target: triggerNodeRef.current,\n children: overlay\n })]\n });\n}\nOverlayTrigger.defaultProps = defaultProps;\nexport default OverlayTrigger;","import React from 'react'\nimport styles from './FunctionBar.module.css'\n\nimport { OverlayTrigger, Tooltip, TooltipProps } from 'react-bootstrap'\n\ntype Props = {\n optionsLeft: Option[]\n optionsRight: Option[]\n}\n\ntype Option = {\n [key: string]: any\n}\n\nexport default (props: Props) => {\n const { optionsLeft, optionsRight } = props\n\n let mapOption = (val: Option, idx: number) => {\n let { text, action, url, render, hotkey } = val\n\n let renderTooltip = (props: TooltipProps) => (\n 快速鍵:{hotkey}\n )\n\n let renderInner = () => {\n if (render) {\n return render()\n\n } else if (url) {\n return (\n {text}\n )\n } else {\n return (\n \n )\n }\n }\n\n if (hotkey) {\n return (\n
  • \n \n {renderInner()}\n \n
  • \n )\n } else {\n return (\n
  • \n {renderInner()}\n
  • \n )\n }\n }\n\n let renderOptions = (options: Option[]) => {\n return (\n
      \n {options.map((each, idx) => mapOption(each, idx))}\n
    \n )\n }\n\n return (\n \n )\n}","import React, { useEffect, useState, useRef } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize } from 'react-use'\n\nimport { useReducer, getRoot, genUUID } from 'react-reducer-utils'\n\nimport { PTT_GUEST } from 'config'\n\nimport * as DoHotBoardsPage from '../reducers/hotBoardsPage'\n\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport BoardList from './BoardList'\nimport FunctionBar from './FunctionBar'\nimport Empty from './Empty'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateHotBoardsPage, doHotBoardsPage] = useReducer(DoHotBoardsPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: React.LegacyRef = useRef(null)\n const funcbarRef: React.LegacyRef = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n\n //init\n\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let hotBoardsPageID = genUUID()\n doHotBoardsPage.init(hotBoardsPageID)\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let hotBoardsPage = getRoot(stateHotBoardsPage)\n if (!hotBoardsPage) {\n return ()\n }\n let errmsg = hotBoardsPage.errmsg || ''\n let boards = hotBoardsPage.list\n\n let header = getRoot(stateHeader) || { user_id: '' }\n let myUserID = header.user_id\n\n let width = innerWidth\n //let boardListHeight = innerHeight * SCREEN_RATIO\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = '熱門看板'\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n\n let renderBoardList = () => {\n if (!hotBoardsPage?.isBusyLoading && boards.length === 0) {\n let style = {\n height: listHeight\n }\n return (\n
    \n

    還沒有熱門看板喔~

    \n
    \n )\n }\n else {\n return ()\n }\n }\n\n let loptions = [\n { text: \"搜尋看板\", action: () => { } },\n ]\n let roptions = []\n if (myUserID && myUserID !== PTT_GUEST) {\n roptions.push({ text: \"我的最愛\", action: () => { window.location.href = '/user/' + myUserID + '/favorites' } })\n }\n\n roptions.push({ text: \"全部看板\", action: () => { window.location.href = '/boards' } })\n roptions.push({ text: \"分類看板\", action: () => { window.location.href = '/cls/1' } })\n\n // NOTE: ref can only be used directly on html tags to get element attributes\n // Will fail if used on React components. e.g. Header\n return (\n
    \n
    \n
    \n
    \n {renderBoardList()}\n
    \n \n
    \n
    \n )\n}\n","import { useEffect } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nvar defaultTarget = isBrowser ? window : null;\nvar isListenerType1 = function (target) {\n return !!target.addEventListener;\n};\nvar isListenerType2 = function (target) {\n return !!target.on;\n};\nvar useEvent = function (name, handler, target, options) {\n if (target === void 0) { target = defaultTarget; }\n useEffect(function () {\n if (!handler) {\n return;\n }\n if (!target) {\n return;\n }\n if (isListenerType1(target)) {\n on(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.on(name, handler, options);\n }\n return function () {\n if (isListenerType1(target)) {\n off(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.off(name, handler, options);\n }\n };\n }, [name, handler, target, JSON.stringify(options)]);\n};\nexport default useEvent;\n","import { useMemo } from 'react';\nimport useEvent from './useEvent';\nimport { noop } from './misc/util';\nvar createKeyPredicate = function (keyFilter) {\n return typeof keyFilter === 'function'\n ? keyFilter\n : typeof keyFilter === 'string'\n ? function (event) { return event.key === keyFilter; }\n : keyFilter\n ? function () { return true; }\n : function () { return false; };\n};\nvar useKey = function (key, fn, opts, deps) {\n if (fn === void 0) { fn = noop; }\n if (opts === void 0) { opts = {}; }\n if (deps === void 0) { deps = [key]; }\n var _a = opts.event, event = _a === void 0 ? 'keydown' : _a, target = opts.target, options = opts.options;\n var useMemoHandler = useMemo(function () {\n var predicate = createKeyPredicate(key);\n var handler = function (handlerEvent) {\n if (predicate(handlerEvent)) {\n return fn(handlerEvent);\n }\n };\n return handler;\n }, deps);\n useEvent(event, useMemoHandler, target, options);\n};\nexport default useKey;\n","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n//import * as errors from './errors'\n\nimport { MergeIdxList } from './utils'\nimport { ArticleList, ArticleSummary_i, BoardSummary, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/ArticlesPage'\n\nexport interface State extends State_t, BoardSummary {\n theDate: Date\n title: string\n startIdx: string\n scrollTo: any\n list: ArticleSummary_i[]\n bottomArticles: ArticleSummary_i[]\n nextIdx: string\n isPreEnd: boolean\n isNextEnd: boolean\n lastSearchTitle: string\n scrollToRow?: number\n}\n\ninterface State_m extends Maybe { }\n\nexport const init = (myID: string, bid: string, title: string, startIdx: string): Thunk => {\n return async (dispatch, _) => {\n let theDate = new Date()\n let state: State_m = {\n theDate,\n title,\n startIdx,\n scrollTo: null,\n list: [],\n bottomArticles: [],\n nextIdx: '',\n isNextEnd: false,\n isPreEnd: false,\n lastSearchTitle: '',\n }\n dispatch(_init({ myID, state }))\n let desc = startIdx ? false : true\n dispatch(GetBoardSummary(myID, bid, desc, title, startIdx))\n }\n}\n\nexport const GetBoardSummary = (myID: string, bid: string, desc: boolean, title: string, startIdx: string): Thunk => {\n return async (dispatch, _) => {\n // Get board information\n const { data, errmsg, status } = await api(ServerUtils.GetBoardSummary(bid))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n await dispatch(_setData(myID, data))\n dispatch(_getBottomArticles(myID, bid))\n dispatch(GetArticles(myID, bid, title, startIdx, desc, false))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nconst _getBottomArticles = (myID: string, bid: string): Thunk => {\n return async (dispatch, getClassState) => {\n const { data, errmsg, status } = await api(ServerUtils.LoadBottomArticles(bid))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n let bottomArticles = data.list\n // @ts-ignore because special treat to num-idx\n bottomArticles.map(each => each.numIdx = '★')\n bottomArticles.map(each => each.url = `/board/${bid}/article/${each.aid}`)\n\n let state = getClassState()\n let me = getState(state, myID)\n if (!me) {\n return\n }\n let regularArticles = me.list\n let isNextEnd = me.isNextEnd\n let lastSearchTitle = me.lastSearchTitle\n\n let allArticles = (isNextEnd && !lastSearchTitle) ? regularArticles.concat(bottomArticles) : regularArticles\n\n let toUpdate: State_m = { bottomArticles, allArticles }\n // If regular article list is already loaded, add list length to scroll position\n if (typeof me.scrollToRow !== 'undefined') {\n toUpdate.scrollToRow = me.scrollToRow + bottomArticles.length\n }\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport const GetArticles = (myID: string, bid: string, searchTitle: string, startIdx: string, desc: boolean, isExclude: false): Thunk => {\n return async (dispatch, getClassState) => {\n let classState = getClassState()\n let me = getState(classState, myID)\n if (!me) {\n return\n }\n\n let myList = me.list || []\n\n //check busy\n let lastPre = me.lastPre || ''\n let lastNext = me.lastNext || ''\n let isBusyLoading = me.isBusyLoading || false\n let isPreEnd = me.isPreEnd || false\n let isNextEnd = me.isNextEnd || false\n\n searchTitle = searchTitle || ''\n let myLastSearchTitle = me.lastSearchTitle || ''\n if (searchTitle !== myLastSearchTitle) {\n myList = []\n lastPre = ''\n lastNext = ''\n isPreEnd = false\n isNextEnd = false\n }\n\n if (isBusyLoading) {\n return\n }\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n\n } else {\n if (lastNext === startIdx) {\n return\n }\n }\n\n await dispatch(_setData(myID, { isBusyLoading: true }))\n\n const { data, errmsg, status } = await api(ServerUtils.LoadArticles(bid, searchTitle, startIdx, desc))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg, isBusyLoading: false }))\n return\n }\n if (!data) {\n return\n }\n\n classState = getClassState()\n me = getState(classState, myID)\n if (!me) {\n return\n }\n let bottomArticles = me.bottomArticles\n\n let dataList = data.list\n dataList.map((each) => each.url = `/board/${bid}/article/${each.aid}`)\n\n let defaultStartNum = desc ? me.total : 1\n let startNumIdx = data.start_num_idx || defaultStartNum\n\n let newList = MergeIdxList(myList, dataList, desc, startNumIdx, isExclude)\n\n let toUpdate: State_m = {\n lastSearchTitle: searchTitle,\n list: newList,\n nextCreateTime: data.next_create_time,\n isBusyLoading: false,\n lastPre: lastPre,\n lastNext: lastNext,\n isPreEnd: isPreEnd,\n isNextEnd: isNextEnd,\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n isNextEnd = true\n }\n if (!startIdx) {\n toUpdate.isPreEnd = true\n isPreEnd = true\n }\n\n } else {\n toUpdate.scrollToRow = dataList.length - 1 //only dataList.length - 1 new items.\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n isPreEnd = true\n }\n if (!startIdx) {\n toUpdate.isNextEnd = true\n isNextEnd = true\n }\n }\n\n let allArticles = (isNextEnd && !searchTitle) ? newList.concat(bottomArticles) : newList\n toUpdate.allArticles = allArticles\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport default createReducer()\n","import moment from 'moment'\nimport { TableData } from '../../types'\n\ntype Props = {\n data: TableData\n rowIndex: number\n columnKey: string\n}\n\nexport default (props: Props) => {\n const { data, rowIndex, columnKey } = props\n let item = data[rowIndex]\n let text = moment(item[columnKey] * 1000).format('MM/DD') //moment is milli-ts based.\n\n return (
    {text}
    )\n}\n","import { TableData } from '../../types'\n\ntype Props = {\n data: TableData\n rowIndex: number\n columnKey: string\n}\n\nexport default (props: Props) => {\n const { data, rowIndex, columnKey } = props\n\n let item = data[rowIndex]\n let text = (item[columnKey] === true) ? '+' : ''\n\n let style = {\n color: (item[columnKey] === true) ? '#fff' : '#000'\n }\n return (\n
    {text}
    \n )\n}","import { TableData } from '../../types'\n\ntype Props = {\n data: TableData\n rowIndex: number\n columnKey: string\n}\n\nexport default (props: Props) => {\n const { data, rowIndex, columnKey } = props\n\n\n let item = data[rowIndex]\n let color = 'green'\n\n let text = item[columnKey] || 0\n let num = parseInt(text)\n if (num === 0) {\n return (
    )\n }\n if (Number.isInteger(num)) {\n if (num > 9) {\n color = 'yellow'\n }\n if (num > 99) {\n color = 'red'\n text = '爆'\n }\n }\n\n\n let style = {\n color: color,\n }\n\n return (\n
    {text}
    \n )\n}","import { TableData } from \"../../types\"\n\ntype Props = {\n data: TableData\n rowIndex: number\n columnKey: string\n}\n\nexport default (props: Props) => {\n const { data, rowIndex, columnKey } = props\n let item = data[rowIndex]\n\n let text = item[columnKey] || ''\n if (text === '') {\n text = '其他'\n }\n\n return (
    {'[' + text + ']'}
    )\n}\n","import React, { CSSProperties, useState } from 'react'\n\nimport { Cell } from 'fixed-data-table-2'\n\nimport screenStyles from './Screen.module.css'\n\nimport RowHighlightedCell from './cells/RowHighlightedCell'\nimport PlainText from './cells/PlainText'\nimport PostDate from './cells/PostDate'\nimport Idx from './cells/Idx'\nimport State from './cells/State'\nimport CommNum from './cells/CommNum'\nimport Category from './cells/Category'\n\nimport Screen from './Screen'\n\nimport { CHAR_WIDTH } from './utils'\nimport { ArticleSummary_i, PttColumn } from '../types'\n\nconst _COLUMNS: PttColumn[] = [\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n { Header: '編號', accessor: 'numIdx', width: CHAR_WIDTH * 6, fixed: true },\n { Header: '', accessor: 'read', width: CHAR_WIDTH * 2, fixed: true },\n { Header: '', accessor: 'recommend', width: CHAR_WIDTH * 2, fixed: true },\n { Header: '日期', accessor: 'create_time', width: CHAR_WIDTH * 5, fixed: true },\n { Header: '作者', accessor: 'owner', width: CHAR_WIDTH * 14, fixed: true },\n { Header: '類別', accessor: 'class', width: CHAR_WIDTH * 6, fixed: true },\n { Header: '標 題', accessor: 'title', width: CHAR_WIDTH * 48, fixed: true, headerTextAlign: 'left' },\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n]\n\ntype Props = {\n articles: ArticleSummary_i[]\n width: number\n height: number\n loadPre: Function\n loadNext: Function\n scrollToRow?: number\n onVerticalScroll: (scrollPos: number) => boolean\n scrollTop: number\n}\n\nexport default (props: Props) => {\n const { articles, width, height, loadPre, loadNext, scrollToRow, onVerticalScroll, scrollTop } = props\n\n const [selectedRow, setSeletedRow] = useState(-1)\n\n // assume that we will need to use different highlight for different cell\n let defaultHighlight = {\n backgroundColor: '#333',\n }\n\n let renderCell = (column: PttColumn, data: ArticleSummary_i[], fontSize: number) => {\n\n let renderer = null\n\n switch (column.accessor) {\n case 'numIdx':\n renderer = Idx\n break\n case 'read':\n renderer = State\n break\n case 'recommend':\n renderer = CommNum\n break\n case 'create_time':\n renderer = PostDate\n break\n case 'class':\n renderer = Category\n break\n case 'title':\n renderer = PlainText\n break\n case 'owner':\n renderer = PlainText\n break\n default:\n return \n }\n return \n }\n\n let renderHeader = (column: PttColumn, fontSize: number) => {\n let style: CSSProperties = {\n fontSize: fontSize + 'px',\n }\n let textAlign = column.headerTextAlign\n if (typeof textAlign !== 'undefined') {\n style.textAlign = textAlign\n }\n\n return ({column.Header})\n }\n\n if (articles.length === 0) {\n return (\n
    這個看板目前沒有文章喔~
    \n )\n }\n\n return (\n \n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"SearchBar_wrapper__RdYGe\",\"searchText\":\"SearchBar_searchText__9BYud\"};","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSearchWhite24Dp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearchWhite24Dp);\nexport default __webpack_public_path__ + \"static/media/search_white_24dp.23a9386825e4eb45a4423223808c95e0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgClearWhite24Dp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#FFFFFF\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClearWhite24Dp);\nexport default __webpack_public_path__ + \"static/media/clear_white_24dp.604f17ae9e7f7ab96de76a3408313180.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FormEvent, MouseEventHandler } from 'react'\n\nimport styles from './SearchBar.module.css'\nimport searchIcon from '../assets/img/search_white_24dp.svg'\nimport clearIcon from '../assets/img/clear_white_24dp.svg'\n\ntype Props = {\n text: string\n setText: Function\n searching: boolean\n onSearch: Function\n onClear: MouseEventHandler\n prompt: string\n className?: string\n}\n\nexport default (props: Props) => {\n const { text, setText, searching, onSearch, onClear, prompt } = props\n\n const onSubmit = (e: FormEvent) => {\n e.preventDefault()\n onSearch()\n }\n\n return (\n \n
    \n setText(e.target.value)}\n style={{ outlineOffset: 0 }}\n />\n \n \"search\n \n {\n searching && \n \"clear\n \n }\n
    \n \n )\n}\n","import CSS from 'csstype'\n\ntype Props = {\n prompt: string\n width?: number\n height?: number\n}\n\nexport default (props: Props) => {\n let { prompt, width, height } = props\n width = width || 0\n height = height || 0\n\n let styles: CSS.Properties = {\n // @ts-ignore\n width,\n // @ts-ignore\n height,\n }\n let className = 'container'\n if (width === 0) {\n styles = {}\n className = 'container vh-100'\n }\n\n return (\n
    \n

    {prompt}

    \n
    \n )\n}","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize, useKey } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport * as DoArticlesPage from '../reducers/articlesPage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport ArticleList from './ArticleList'\nimport FunctionBar from './FunctionBar'\nimport SearchBar from './SearchBar'\n\nimport EmptyList from './EmptyList'\n\nimport QueryString from 'query-string'\n\nimport { GetBoardParent } from './utils'\nimport Empty from './Empty'\nimport { ArticleSummary_i } from '../types'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateArticlesPage, doArticlesPage] = useReducer(DoArticlesPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n const [searching, setSearching] = useState(false)\n\n //keys\n let parentPage = GetBoardParent() || '/boards/popular'\n useKey('ArrowLeft', (e) => {\n window.location.href = parentPage\n })\n\n //init\n let { bid } = useParams()\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID, doHeader, null, null)\n\n let articlesPageID = genUUID()\n\n let query = QueryString.parse(window.location.search)\n const { start_idx: startIdx, title: queryTitle } = query\n let searchTitle = queryTitle || ''\n\n doArticlesPage.init(articlesPageID, bid, searchTitle, startIdx)\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let articlesPage = getRoot(stateArticlesPage)\n if (!articlesPage) {\n return ()\n }\n let myID = getRootID(stateArticlesPage)\n let errmsg = articlesPage.errmsg || ''\n let brdname = articlesPage.brdname || ''\n let title = articlesPage.title || ''\n let searchTitle = articlesPage.searchTitle || ''\n let isNextEnd = articlesPage.isNextEnd || false\n let isPreEnd = articlesPage.isPreEnd || false\n //let nextCreateTime = articlesPage.nextCreateTime || 0\n let scrollToRow = articlesPage.scrollToRow\n let articles = articlesPage.allArticles || []\n\n console.log('ArticlesPage: articlesPage:', articlesPage, 'brdname:', brdname)\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = brdname + ' - ' + title\n\n console.log('ArticlesPage: headerTitle:', headerTitle)\n\n let loadPre = (item: ArticleSummary_i) => {\n if (item.numIdx === 1 || isPreEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n doArticlesPage.GetArticles(myID, bid, searchTitle, idx, true, true)\n }\n\n let loadNext = (item: ArticleSummary_i) => {\n if (isNextEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n\n doArticlesPage.GetArticles(myID, bid, searchTitle, idx, false, true)\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (scrollToRow === null) {\n return false\n }\n\n doArticlesPage.SetData(myID, { scrollToRow: null })\n\n return true\n }\n\n const onSearchSubmit = () => {\n searchTitle === '' ? setSearching(false) : setSearching(true)\n // clear articles\n // load more\n doArticlesPage.GetArticles(myID, bid, searchTitle, null, true, false)\n }\n\n const onSearchClear = () => {\n setSearching(false)\n searchTitle = ''\n doArticlesPage.SetData(myID, { searchTitle: searchTitle })\n doArticlesPage.GetArticles(myID, bid, searchTitle, null, true, false)\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderArticles = () => {\n if (articles.length === 0) {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n let loptions = [\n { text: \"發表文章\", url: `/board/${bid}/post` },\n ]\n let roptions = [\n { text: \"精華區\", url: `/board/${bid}/manual` },\n { text: \"看板設定/說明\", action: () => { } },\n ]\n\n const renderHeader = () => {\n return (\n
    \n
    \n {headerTitle}\n
    \n {\n doArticlesPage.SetData(myID, { searchTitle: text })\n }}\n onSearch={onSearchSubmit}\n searching={searching}\n onClear={onSearchClear}\n prompt={'搜尋文章...'}\n />\n
    \n
    \n )\n }\n\n // NOTE: ref can only be used directly on html tags to get element attributes\n // Will fail if used on React components.\n return (\n
    \n
    \n \n
    \n {renderArticles()}\n
    \n \n
    \n
    \n )\n}\n","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n\nimport { MergeList, SantizeBoard } from './utils'\nimport { BoardSummary_i, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/GeneralBoardsPage'\n\nexport interface State extends State_t {\n theDate: Date\n startIdx: string\n scrollTo: any\n list: BoardSummary_i[]\n lastPre: string\n lastNext: string\n isBusyLoading: boolean\n nextIdx: string\n scrollToRow: number\n isNextEnd: boolean\n isPreEnd: boolean\n searchKeyword: string\n lastSearchKeyword: string\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, searchKeyword: string, startIdx: string, isByClass: boolean): Thunk => {\n let theDate = new Date()\n return async (dispatch, _) => {\n let state: State = {\n theDate,\n startIdx,\n scrollTo: null,\n list: [],\n lastPre: '',\n lastNext: '',\n isBusyLoading: false,\n nextIdx: '',\n scrollToRow: 0,\n isNextEnd: false,\n isPreEnd: false,\n searchKeyword,\n lastSearchKeyword: '',\n }\n dispatch(_init({ myID, state }))\n dispatch(GetBoards(myID, searchKeyword, startIdx, false, false, isByClass))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nexport const GetBoards = (myID: string, searchKeyword: string, startIdx: string, desc: boolean, isExclude: boolean, isByClass: boolean): Thunk => {\n return async (dispatch, getClassState) => {\n const state = getClassState()\n const me = getState(state, myID)\n if (!me) {\n return\n }\n let myList = me.list\n\n //check busy\n let lastPre = me.lastPre\n let lastNext = me.lastNext\n let isBusyLoading = me.isBusyLoading\n\n\n let myLastSearchKeyword = me.lastSearchKeyword\n if (searchKeyword !== myLastSearchKeyword) {\n myList = []\n lastPre = ''\n lastNext = ''\n }\n\n if (isBusyLoading) {\n return\n }\n\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n\n } else {\n if (lastNext === startIdx) {\n return\n }\n\n }\n\n dispatch(_setData(myID, { isBusyLoading: true }))\n\n let loadBoards = isByClass ? ServerUtils.LoadGeneralBoardsByClass : ServerUtils.LoadGeneralBoards\n\n const { data, errmsg, status } = await api(loadBoards(searchKeyword, startIdx, desc))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg, isBusyLoading: false }))\n return\n }\n if (!data) {\n dispatch(_setData(myID, { errmsg: 'no data', isBusyLoading: false }))\n return\n }\n\n let dataList = data.list || []\n dataList = dataList.map((each) => SantizeBoard(each))\n\n let newList = MergeList(myList, dataList, desc, isExclude)\n\n let toUpdate: State_m = {\n lastSearchKeyword: searchKeyword,\n list: newList,\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n }\n\n } else {\n toUpdate.scrollToRow = dataList.length - 1 //only dataList.length - 1 new items.\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n }\n }\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport default createReducer()\n","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize } from 'react-use'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport { PTT_GUEST } from 'config'\n\nimport * as DoGeneralBoardsPage from '../reducers/generalBoardsPage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport BoardList from './BoardList'\nimport FunctionBar from './FunctionBar'\nimport SearchBar from './SearchBar'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { BoardSummary_i } from '../types'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateGeneralBoardsPage, doGeneralBoardsPage] = useReducer(DoGeneralBoardsPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n // eslint-disable-next-line\n const [isByClass, setIsByClass] = useState(true)\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n const [searching, setSearching] = useState(false)\n\n //init\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let generalBoardsPageID = genUUID()\n const query = QueryString.parse(window.location.search)\n const { start_idx: startIdx, title: queryTitle } = query\n let searchKeyword = queryTitle || ''\n\n doGeneralBoardsPage.init(generalBoardsPageID, searchKeyword, startIdx, isByClass)\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let boardsPage = getRoot(stateGeneralBoardsPage)\n if (!boardsPage) {\n return ()\n }\n let myID = getRootID(stateGeneralBoardsPage)\n let errmsg = boardsPage.errmsg || ''\n let boards = boardsPage.list\n let searchKeyword = boardsPage.searchKeyword\n let isNextEnd = boardsPage.isNextEnd\n let isPreEnd = boardsPage.isPreEnd\n let scrollToRow = boardsPage.scrollToRow\n\n let header = getRoot(stateHeader)\n if (!header) {\n return ()\n }\n let myUserID = header.user_id\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = '所有看板'\n\n let loadPre = (item: BoardSummary_i) => {\n if (item.numIdx === 1 || isPreEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n doGeneralBoardsPage.GetBoards(myID, searchKeyword, idx, true, true, isByClass)\n }\n\n let loadNext = (item: BoardSummary_i) => {\n if (isNextEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n\n doGeneralBoardsPage.GetBoards(myID, searchKeyword, idx, false, true, isByClass)\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (typeof scrollToRow === 'undefined') {\n return false\n }\n\n doGeneralBoardsPage.SetData(myID, { scrollToRow: undefined })\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderBoards = () => {\n if (boards.length === 0) {\n let style = {\n height: listHeight\n }\n return (\n
    \n

    目前找不到看板喔~

    \n
    \n )\n } else {\n return (\n \n )\n }\n }\n\n let loptions = [\n { text: \"搜尋看板\", action: () => { } },\n ]\n\n let roptions = []\n if (myUserID && myUserID !== PTT_GUEST) {\n roptions.push({ text: \"我的最愛\", action: () => { window.location.href = '/user/' + myUserID + '/favorites' } })\n }\n roptions.push({ text: \"熱門看板\", action: () => { window.location.href = '/boards/popular' } })\n roptions.push({ text: \"分類看板\", action: () => { window.location.href = '/cls/1' } })\n\n const onSearchSubmit = () => {\n searchKeyword === '' ? setSearching(false) : setSearching(true)\n // clear articles\n // load more\n doGeneralBoardsPage.GetBoards(myID, searchKeyword, null, false, false)\n }\n\n\n const onSearchClear = () => {\n setSearching(false)\n searchKeyword = ''\n doGeneralBoardsPage.SetData(myID, { searchKeyword })\n doGeneralBoardsPage.GetBoards(myID, searchKeyword, null, false, false)\n }\n\n const renderHeader = () => {\n return (\n
    \n
    \n {headerTitle}\n
    \n {\n doGeneralBoardsPage.SetData(myID, { searchKeyword: text })\n }}\n onSearch={onSearchSubmit}\n searching={searching}\n onClear={onSearchClear}\n prompt={'搜尋板名...'}\n />\n
    \n
    \n )\n }\n\n return (\n
    \n
    \n
    \n
    \n {renderBoards()}\n
    \n \n
    \n
    \n )\n}","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n\nimport { MergeList, SantizeBoard } from './utils'\nimport { BoardSummary_i, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/UserFavoritesPage'\n\nexport interface State extends State_t {\n theDate: Date\n level: string\n startIdx: string\n scrollTo: any\n lastPre: string\n lastNext: string\n isBusyLoading: boolean\n list: BoardSummary_i[]\n nextIdx: string\n isPreEnd: boolean\n isNextEnd: boolean\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, userID: string, level: string, startIdx: string): Thunk => {\n return async (dispatch, _) => {\n let theDate = new Date()\n let state: State = {\n theDate,\n level,\n startIdx,\n scrollTo: null,\n lastPre: '',\n lastNext: '',\n isBusyLoading: false,\n list: [],\n nextIdx: '',\n isPreEnd: false,\n isNextEnd: false,\n }\n dispatch(_init({ myID, state }))\n dispatch(GetBoards(myID, userID, level, startIdx, false, false))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nexport const GetBoards = (myID: string, userID: string, level: string, startIdx: string, desc: boolean, isExclude: boolean): Thunk => {\n return async (dispatch, getClassState) => {\n const state = getClassState()\n const me = getState(state, myID)\n if (!me) {\n return\n }\n let myList = me.list || []\n\n //check busy\n let lastPre = me.lastPre || ''\n let lastNext = me.lastNext || ''\n let isBusyLoading = me.isBusyLoading || false\n if (isBusyLoading) {\n return\n }\n\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n } else {\n if (lastNext === startIdx) {\n return\n }\n }\n\n dispatch(_setData(myID, { isBusyLoading: true }))\n\n const { data, errmsg, status } = await api(ServerUtils.LoadFavoriteBoards(userID, level, startIdx, desc))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg, isBusyLoading: false }))\n return\n }\n if (!data) {\n dispatch(_setData(myID, { errmsg: 'no data', isBusyLoading: false }))\n return\n }\n\n let dataList = data.list || []\n dataList = dataList.map((each) => SantizeBoard(each))\n\n let newList = MergeList(myList, dataList, desc, isExclude)\n\n let toUpdate: State_m = {\n list: newList,\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n }\n } else {\n toUpdate.scrollToRow = dataList.length - 1 //only dataList.length - 1 new items.\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n }\n }\n\n console.log('doUserFavoritesPage.GetBoards: to update:', toUpdate)\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport default createReducer()\n","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport * as DoUserFavoritesPage from '../reducers/userFavoritesPage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport BoardList from './BoardList'\nimport FunctionBar from './FunctionBar'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { BoardSummary_i } from '../types'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateUserFavoritesPage, doUserFavoritesPage] = useReducer(DoUserFavoritesPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //init\n let { userid } = useParams()\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID, doHeader, null, null)\n\n let userFavoritesPageID = genUUID()\n const query = QueryString.parse(window.location.search)\n const { start_idx: startIdx, level } = query\n\n doUserFavoritesPage.init(userFavoritesPageID, userid, level, startIdx)\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let boardsPage = getRoot(stateUserFavoritesPage)\n if (!boardsPage) {\n return ()\n }\n let myID = getRootID(stateUserFavoritesPage)\n let errmsg = boardsPage.errmsg || ''\n let boards = boardsPage.list\n let isPreEnd = boardsPage.isPreEnd\n let isNextEnd = boardsPage.isNextEnd\n let scrollToRow = boardsPage.scrollToRow\n let level = boardsPage.level\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = '我的最愛'\n\n let loadPre = (item: BoardSummary_i) => {\n if (item.numIdx === 1 || isPreEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n doUserFavoritesPage.GetBoards(myID, userid, level, idx, true, true)\n }\n\n let loadNext = (item: BoardSummary_i) => {\n if (isNextEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n\n doUserFavoritesPage.GetBoards(myID, userid, level, idx, false, true)\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (typeof scrollToRow === 'undefined') {\n return false\n }\n\n doUserFavoritesPage.SetData(myID, { scrollToRow: undefined })\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n\n let renderBoards = () => {\n if (boards.length === 0) {\n let style = {\n height: listHeight\n }\n return (\n
    \n

    目前找不到看板喔~

    \n
    \n )\n } else {\n return (\n \n )\n }\n }\n\n let loptions = [\n { text: \"搜尋看板\", action: () => { } },\n ]\n\n let roptions = [\n { text: \"熱門看板\", action: () => { window.location.href = '/boards/popular' } },\n { text: \"所有看板\", action: () => { window.location.href = '/boards' } },\n { text: \"分類看板\", action: () => { window.location.href = '/cls/1' } },\n ]\n\n return (\n
    \n
    \n
    \n
    \n {renderBoards()}\n
    \n \n
    \n
    \n )\n}","import { init as _init, setData as _setData, createReducer, getState, Thunk } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n//import * as errors from './errors'\n\nimport { MergeList, CdateMdHM, CdateYYYYMdHMS } from './utils'\n\nimport { ArticleDetail, Comment, Content, Line, Maybe, Rune_t, Runes_t, State_t } from '../types'\n\nimport {\n COLOR_FOREGROUND_RED,\n COLOR_FOREGROUND_WHITE,\n COLOR_FOREGROUND_GREEN,\n COLOR_FOREGROUND_BLUE,\n COLOR_FOREGROUND_YELLOW,\n COLOR_FOREGROUND_BLACK,\n\n COLOR_BACKGROUND_BLACK,\n COLOR_BACKGROUND_BLUE,\n COLOR_BACKGROUND_WHITE,\n\n COMMENT_TYPE_RECOMMEND,\n COMMENT_TYPE_BOO,\n COMMENT_TYPE_COMMENT,\n COMMENT_TYPE_FORWARD,\n COMMENT_TYPE_EDIT,\n COMMENT_TYPE_DELETED,\n COMMENT_TYPE_REPLY\n} from '../constants'\n\nexport const myClass = 'demo-pttbbs/ArticlePage'\n\nexport interface State extends State_t, ArticleDetail {\n theDate: Date\n startIdx: string\n scrollTo: any\n isBusyLoading: boolean\n nextIdx: string\n isPreEnd: boolean\n isNextEnd: boolean\n lastPre: string | null\n lastNext: string | null\n scrollToRow: number\n contentLines: Line[]\n comments: Line[]\n contentComments: Line[]\n}\n\ninterface State_m extends Maybe { }\n\nconst _TYPE_RUNE_MAP: { [key: number]: Rune_t } = {\n [COMMENT_TYPE_RECOMMEND]: {\n text: '推',\n color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK, highlight: true },\n },\n [COMMENT_TYPE_BOO]: {\n text: '噓',\n color0: { foreground: COLOR_FOREGROUND_RED, background: COLOR_BACKGROUND_BLACK, highlight: true },\n },\n [COMMENT_TYPE_COMMENT]: {\n text: '→ ',\n color0: { foreground: COLOR_FOREGROUND_RED, background: COLOR_BACKGROUND_BLACK, highlight: false },\n },\n}\n\nexport const init = (myID: string, bid: string, aid: string, startIdx: string): Thunk => {\n let theDate = new Date()\n return async (dispatch, _) => {\n let state: State_m = {\n theDate,\n startIdx,\n scrollTo: null,\n isBusyLoading: false,\n nextIdx: '',\n isPreEnd: true,\n isNextEnd: false,\n lastPre: null,\n lastNext: null,\n scrollToRow: 0,\n contentLines: [],\n comments: [],\n contentComments: [],\n }\n dispatch(_init({ myID, state }))\n dispatch(GetArticleContent(myID, bid, aid, startIdx))\n }\n}\n\nexport const SetData = (myID: string, data: any): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nexport const AddRecommend = (myID: string, bid: string, aid: string, recommendType: string, recommend: Content): Thunk => {\n return async (dispatch, _) => {\n const { data, errmsg, status } = await api(ServerUtils.AddRecommend(bid, aid, recommendType, recommend))\n\n console.log('articlePage.AddRecommend: after ServerUtils: bid:', bid, 'aid:', aid, 'recommendType:', recommendType, 'recommend:', recommend, 'data:', data, 'errmsg:', errmsg, 'status:', status)\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n\n dispatch(GetComments(myID, bid, aid, '', true, false))\n }\n}\n\nexport const Rank = (myID: string, bid: string, aid: string, rank: number): Thunk => {\n return async (dispatch, _) => {\n const { data, errmsg, status } = await api(ServerUtils.Rank(bid, aid, rank))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n dispatch(_setData(myID, data))\n }\n}\n\n//GetComments\n//\n//1. 檢查 busy\n//2. 拿到 comments\n//3. parse comments.\n//4. merge list\n//5. 整合 to-update\nexport const GetComments = (myID: string, bid: string, aid: string, startIdx: string, desc: boolean, isExclude: boolean): Thunk => {\n return async (dispatch, getClassState) => {\n let state = getClassState()\n let me = getState(state, myID)\n if (!me) {\n return\n }\n let myComments = me.comments || []\n\n //check busy\n let lastPre = me.lastPre\n let lastNext = me.lastNext\n let isBusyLoading = me.isBusyLoading || false\n\n if (isBusyLoading) {\n return\n }\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n } else {\n if (lastNext === startIdx) {\n return\n }\n }\n\n dispatch(_setData(myID, { isBusyLoading: true }))\n\n const { data, errmsg, status } = await api(ServerUtils.GetComments(bid, aid, startIdx, desc))\n\n if (status !== 200) {\n dispatch(_setData(myID, { isBusyLoading: false, errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n let dataComments = _parseComments(data.list)\n\n let newComments: Line[] = []\n if (isExclude) {\n newComments = MergeList(myComments, dataComments, desc, isExclude)\n } else {\n newComments = desc ? dataComments.reverse() : dataComments\n }\n\n //5. 整合 toUpdate\n state = getClassState()\n me = getState(state, myID)\n if (!me) {\n return\n }\n let isPreEnd = me.isPreEnd || false\n let contentLines = me.contentLines\n\n let toUpdate: State_m = {\n comments: newComments,\n isBusyLoading: false,\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n } else {\n toUpdate.isNextEnd = false\n }\n\n if (!startIdx) {\n toUpdate.lastPre = null\n toUpdate.isPreEnd = true\n isPreEnd = true\n }\n } else {\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n isPreEnd = true\n } else {\n toUpdate.isPreEnd = false\n isPreEnd = false\n }\n\n if (!startIdx) {\n toUpdate.lastNext = null\n toUpdate.isNextEnd = true\n }\n\n if (!isPreEnd) {\n toUpdate.scrollToRow = dataComments.length - 1\n } else if (lastPre) {\n toUpdate.scrollToRow = contentLines.length + dataComments.length - 1\n }\n }\n let contentComments = isPreEnd ? contentLines.concat(newComments) : newComments\n toUpdate.contentComments = contentComments\n\n dispatch(_setData(myID, toUpdate))\n\n }\n}\n\n//GetArticleContent\n//\n//1. 拿到 content.\n//2. parse content.\n//3. contentComments.\nexport const GetArticleContent = (myID: string, bid: string, aid: string, startIdx: string): Thunk => {\n console.log('articlePage.GetArticleContent: start')\n return async (dispatch, getClassState) => {\n console.log('articlePage.GetArticleContent: to api')\n const { data, errmsg, status } = await api(ServerUtils.GetArticle(bid, aid))\n\n console.log('articlePage.GetArticleContent: after api: data:', data, 'errmsg:', errmsg, 'status:', status)\n\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n dispatch(_setData(myID, data))\n\n let bbsLines = _parseBBSLines(data.bbs, data.ip, data.host, bid, aid)\n let content: Content = data.content || []\n let prefix: Content = data.prefix || []\n prefix = _parseHeader(prefix)\n content = prefix.concat(content)\n content = content.concat(bbsLines)\n let lines = _parseLines(content || [])\n if (prefix.length >= 3) { // valid prefix\n lines[0].background = COLOR_BACKGROUND_BLUE\n lines[1].background = COLOR_BACKGROUND_BLUE\n lines[2].background = COLOR_BACKGROUND_BLUE\n }\n\n let state = getClassState()\n let me = getState(state, myID)\n if (!me) {\n return\n }\n let isPreEnd = me.isPreEnd || false\n let comments = me.comments || []\n let contentComments = isPreEnd ? lines.concat(comments) : comments\n\n dispatch(_setData(myID, { contentLines: lines, contentComments }))\n\n dispatch(GetComments(myID, bid, aid, startIdx, false, false))\n }\n}\n\nconst _parseHeader = (header: Content) => {\n if (header.length < 3) {\n return header\n }\n\n let [authorBoard, title, theDateTime] = [header[0], header[1], header[2]]\n\n let [author, board] = authorBoard[0].text.split(' 看板: ')\n\n //author\n let authorPromptRune: Rune_t = { text: ' 作者 ', color0: { foreground: COLOR_FOREGROUND_BLUE, background: COLOR_BACKGROUND_WHITE } }\n let authorRune = { text: ' ' + author.slice(4), color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLUE }, extend: true }\n\n //board\n let boardPromptRune = { text: ' 看板 ', color0: { foreground: COLOR_FOREGROUND_BLUE, background: COLOR_BACKGROUND_WHITE }, pullright: true }\n let boardRune = { text: ' ' + board + ' ', color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLUE }, pullright: true }\n\n //title\n let titlePromptRune = { text: ' 標題 ', color0: { foreground: COLOR_FOREGROUND_BLUE, background: COLOR_BACKGROUND_WHITE } }\n let titleRune = { text: ' ' + title[0].text.slice(4), color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLUE } }\n\n //datetime\n let datetimePromptRune = { text: ' 時間 ', color0: { foreground: COLOR_FOREGROUND_BLUE, background: COLOR_BACKGROUND_WHITE } }\n let datetimeRune = { text: ' ' + theDateTime[0].text.slice(4), color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLUE } }\n\n //emptyLine\n let emptyLine = { 'text': '', color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK } }\n\n header = [\n [authorPromptRune, authorRune, boardRune, boardPromptRune],\n [titlePromptRune, titleRune],\n [datetimePromptRune, datetimeRune],\n [emptyLine],\n ]\n\n return header\n}\n\nconst _parseLines = (lines: Content): Line[] => {\n return lines.map((runes) => ({ runes }))\n}\n\nconst _parseBBSLines = (bbs: string, ip: string, host: string, bid: string, aid: string): Content => {\n let location = ((window || {}).location) || {}\n let emptyLine = { 'text': '', color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK } }\n let hrLine = { 'text': '--', color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK } }\n let bbsLine = { 'text': `※ 發信站: ${bbs}, 來自: ${ip} (${host})`, color0: { foreground: COLOR_FOREGROUND_GREEN, background: COLOR_BACKGROUND_BLACK } }\n let urlLine = { 'text': `※ 文章網址: ${location.protocol}//${location.host}/board/${bid}/article/${aid}`, color0: { foreground: COLOR_FOREGROUND_GREEN, background: COLOR_BACKGROUND_BLACK } }\n\n return [[emptyLine], [hrLine], [bbsLine], [urlLine]]\n}\n\nconst _parseComments = (comments: Comment[]): Line[] => {\n let commentList: Line[][] = comments.map((each) => {\n const { type: theType } = each\n\n switch (theType) {\n case COMMENT_TYPE_REPLY:\n return _parseReply(each)\n case COMMENT_TYPE_FORWARD:\n return _parseForwardComment(each)\n case COMMENT_TYPE_EDIT:\n return _parseEditedComment(each)\n case COMMENT_TYPE_DELETED:\n return _parseDeletedComment(each)\n default:\n return _parseRegularComment(each)\n }\n })\n\n return commentList.flatMap((each) => each)\n}\n\nconst _parseRegularComment = (comment: Comment): Line[] => {\n const { type: theType, owner, create_time: createTime } = comment\n let runes: Runes_t = []\n //comment-type\n let typeRune = _TYPE_RUNE_MAP[theType]\n if (typeRune) {\n runes.push(typeRune)\n }\n\n //comment-owner\n let ownerRune: Rune_t = { text: ' ' + owner, color0: { foreground: COLOR_FOREGROUND_YELLOW, highlight: true } }\n runes.push(ownerRune)\n\n //comment-colon\n let colonRune = { text: ': ', color0: { foreground: COLOR_FOREGROUND_YELLOW } }\n runes.push(colonRune)\n\n //comment-content\n let contentRunes = (comment.content && comment.content.length > 0) ? comment.content[0] : []\n if (contentRunes.length > 0) {\n contentRunes[0].color0.foreground = COLOR_FOREGROUND_YELLOW\n delete contentRunes[0].color1\n runes = runes.concat(contentRunes)\n }\n\n //comment-datetime\n let datetimeStr = CdateMdHM(createTime * 1000) // createTime is TS\n let datetimeRune: Rune_t = {\n text: datetimeStr,\n pullright: true,\n color0: {},\n }\n runes.push(datetimeRune)\n return [{ runes, idx: comment.idx }]\n}\n\nconst _parseReply = (comment: Comment): Line[] => {\n // Reply: directly return content.\n let emptyLine: Line[] = [{ runes: [{ 'text': '', color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK } }] }]\n\n return emptyLine.concat(comment.content.map((eachRunes): Line => {\n return { runes: eachRunes, idx: comment.idx }\n }))\n}\n\nconst _parseForwardComment = (comment: Comment): Line[] => {\n const { owner, create_time: createTime } = comment\n let boardName = comment.content[0][0].text || 'unknownBoard'\n let runes = []\n\n let content = boardName === '某隱形看板' ? ': 轉錄至某隱形看板' : `: 轉錄至看版 ${boardName}`\n\n runes.push({\n text: `※ `,\n color0: { foreground: COLOR_FOREGROUND_GREEN, background: COLOR_BACKGROUND_BLACK }\n })\n runes.push({\n text: `${owner}`,\n color0: { foreground: COLOR_FOREGROUND_GREEN, highlight: true, background: COLOR_BACKGROUND_BLACK }\n })\n runes.push({\n text: content,\n color0: { foreground: COLOR_FOREGROUND_GREEN, background: COLOR_BACKGROUND_BLACK }\n })\n let datetimeStr = CdateMdHM(createTime * 1000) //createTime is TS\n let datetimeRune = {\n text: datetimeStr,\n pullright: true,\n color0: {},\n }\n runes.push(datetimeRune)\n\n return [{ runes, idx: comment.idx }]\n}\n\nconst _parseDeletedComment = (comment: Comment): Line[] => {\n const { owner: deleter } = comment\n // TODO confirm format\n let runes = [{\n text: `${deleter} 刪除某人的貼文`,\n color0: { foreground: COLOR_FOREGROUND_BLACK, highlight: true, background: COLOR_BACKGROUND_BLACK }\n }]\n return [{ runes, idx: comment.idx }]\n}\n\nconst _parseEditedComment = (comment: Comment): Line[] => {\n const { owner: editor = 'editor', ip, host = 'unknown', create_time: editTime } = comment\n // TODO confirm format\n let editTimeStr = CdateYYYYMdHMS(editTime * 1000) //editTime is TS\n let runes = [{\n text: `※ 編輯: ${editor}(${ip} ${host}), ${editTimeStr}`,\n color0: { foreground: COLOR_FOREGROUND_GREEN, background: COLOR_BACKGROUND_BLACK }\n }]\n return [{ runes, idx: comment.idx }]\n}\n\nexport default createReducer()\n","import { EditRunes_t, Runes_t, EditRune_t, Rune_t } from '../../types'\nimport styles from './ContentRenderer.module.css'\n\nconst _runeAttrs = ['foreground', 'background', 'blink', 'highlight']\n\nexport const getClassNamesFromRune = (rune: any): [string[], boolean] => {\n let classNames0 = [styles['rune']]\n let color0 = rune.color0 || {}\n classNames0.push(...getClassNamesFromColor(color0))\n let isTwoColor = rune.color1 && _runeAttrs.some((attr) => color0[attr] !== rune.color1[attr])\n if (isTwoColor) {\n let color1 = rune.color1 || color0\n classNames0.push(styles['halves'])\n classNames0.push(...getClassNamesFromColor(color1, 'r'))\n }\n\n return [classNames0, isTwoColor]\n}\n\nexport const getClassNamesFromColor = (color: any, part: string = '') => {\n let classNames = []\n if (color.foreground) {\n if (color.highlight) {\n classNames.push(styles[part + 'h' + color.foreground])\n } else {\n classNames.push(styles[part + 'c' + color.foreground])\n }\n }\n\n if (color.background) {\n classNames.push(styles[part + 'c' + color.background])\n }\n\n if (color.blink) {\n classNames.push(styles[part + 'c5'])\n }\n\n return classNames\n}\n\nexport const calcRunesCount = (runes: Runes_t): number => {\n return runes.reduce((r, x, i) => {\n r += calcTextCount(x.text)\n return r\n }, 0)\n}\n\nexport const calcTextCount = (text: string): number => {\n return text.split('').reduce((r, x, i) => {\n if (x >= ' ' && x <= '~') {\n return r + 1\n }\n return r + 2\n }, 0)\n}\n","import styles from './ContentRenderer.module.css'\nimport { MouseEvent } from 'react'\nimport { getClassNamesFromRune } from './utils'\n\ntype Props = {\n rune: any\n rowIndex?: number\n idx: number\n onMouseDown?: (e: MouseEvent, rowIndex: number, idx: number) => void\n [key: string]: any\n}\n\nexport default (props: Props) => {\n let { rune, rowIndex, idx, onMouseDown } = props\n let [classNames0, isTwoColor] = getClassNamesFromRune(rune)\n let classNamesGroup = rune.pullright ? [styles['pull-right']] : []\n let runeKey = 'rune-' + rowIndex + '-' + idx\n let _onMouseDown = (e: MouseEvent) => {\n if (!onMouseDown) {\n return\n }\n\n rowIndex = rowIndex || 0\n onMouseDown(e, rowIndex, idx)\n }\n classNames0.push(...classNamesGroup)\n let className0 = classNames0.join(' ')\n if (isTwoColor) {\n return (\n <>\n {[...rune.text].map((ch, idx) => (\n {ch}\n ))}\n \n )\n } else {\n return (\n {rune.text}\n )\n }\n}","import styles from './ContentRenderer.module.css'\nimport { COLOR_BACKGROUND_BLACK } from \"../../constants\"\nimport { Runes_t } from '../../types'\nimport { MouseEvent } from 'react'\n\nimport Rune from './Rune'\n\ntype Props = {\n data: any\n fontSize: number\n rowIndex: number\n columnKey: string\n loadPre?: (arg0: any) => void\n loadNext?: (arg0: any) => void\n onMouseDown?: (e: MouseEvent) => void\n}\n\nexport default (props: Props) => {\n const { data, rowIndex, columnKey, loadPre, loadNext, onMouseDown } = props\n let item = data[rowIndex]\n let runes: Runes_t[] = item[columnKey] || []\n let background = item.background || COLOR_BACKGROUND_BLACK\n\n if (rowIndex === 0 && loadPre) {\n loadPre(item)\n }\n if (rowIndex === data.length - 1 && loadNext) {\n loadNext(item)\n }\n\n return (\n
    \n {runes.map((each, idx) => ())}\n
    \n )\n}\n","import React, { useState } from 'react'\n\nimport { Cell } from 'fixed-data-table-2'\n\nimport screenStyles from './Screen.module.css'\n\nimport RowHighlightedCell from './cells/RowHighlightedCell'\nimport Runes from './cells/Runes'\n\nimport Screen from './Screen'\n\nimport { CHAR_WIDTH } from './utils'\nimport { Line, TableData } from '../types'\n\nconst _COLUMNS = [\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n { Header: 'text', accessor: 'runes', width: CHAR_WIDTH * 90, fixed: true },\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n]\n\ntype Props = {\n lines: Line[]\n width: number\n height: number\n loadPre: Function\n loadNext: Function\n scrollToRow?: number\n onVerticalScroll?: (scrollPos: number) => boolean\n scrollTop: number\n}\n\nexport default (props: Props) => {\n const { lines, width, height, loadPre, loadNext, scrollToRow, onVerticalScroll, scrollTop } = props\n\n const [selectedRow, setSeletedRow] = useState(-1)\n\n // assume that we will need to use different highlight for different cell\n let defaultHighlight = {\n backgroundColor: '#333',\n }\n\n let renderCell = (column: any, data: TableData, fontSize: number) => {\n\n let renderer = null\n\n switch (column.accessor) {\n case 'runes':\n renderer = Runes\n break\n default:\n return \n }\n return \n }\n\n if (lines.length === 0) {\n return (\n
    (目前無法看到文章喔~)
    \n )\n }\n\n return (\n \n )\n}\n","import * as React from 'react';\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const caretUp = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.66 352H31.34c-17.82 0-26.74-21.54-14.14-34.14L145.86 189.2a20 20 0 0 1 28.28 0L302.8 317.86c12.6 12.6 3.68 34.14-14.14 34.14z\"\n}));\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const caretDown = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 320 512\",\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"\n}));\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const chevronRight = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 320 512\",\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M285.48 272.97L91.13 467.31a24 24 0 0 1-33.94 0l-22.67-22.66a24 24 0 0 1-.04-33.9L188.5 256 34.48 101.25a24 24 0 0 1 .04-33.9L57.2 44.7a24 24 0 0 1 33.94 0l194.35 194.34a24 24 0 0 1 0 33.94z\"\n}));\nexport const chevronLeft = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 320 512\",\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.52 239.03L228.87 44.69a24 24 0 0 1 33.94 0l22.67 22.67a24 24 0 0 1 .04 33.9L131.49 256l154.02 154.75a24 24 0 0 1-.04 33.9l-22.67 22.67a24 24 0 0 1-33.94 0L34.52 272.97a24 24 0 0 1 0-33.94z\"\n}));\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const calendar = /*#__PURE__*/React.createElement(\"svg\", {\n \"aria-hidden\": true,\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 448 512\",\n className: \"rw-i-calendar\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n}));\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const clock = /*#__PURE__*/React.createElement(\"svg\", {\n \"aria-hidden\": true,\n height: \"1em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 512 512\",\n className: \"rw-i-clock\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6a12 12 0 0 1 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"\n}));\nexport const times = /*#__PURE__*/React.createElement(\"svg\", {\n height: \".8em\",\n fill: \"currentcolor\",\n viewBox: \"0 0 352 512\",\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"\n}));\n/*!\nFont Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com\nLicense - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n*/\n\nexport const clear = /*#__PURE__*/React.createElement(\"svg\", {\n \"aria-hidden\": true,\n height: \"1em\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"\n})); // https://codepen.io/aurer/pen/jEGbA\n\nexport const Spinner = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"1.4em\",\n viewBox: \"0 0 50 50\",\n xmlSpace: \"preserve\",\n \"aria-hidden\": \"true\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentcolor\",\n d: \"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\"\n}, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeType: \"xml\",\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 25 25\",\n to: \"360 25 25\",\n dur: \"0.6s\",\n repeatCount: \"indefinite\"\n})));","const _excluded = [\"className\", \"disabled\", \"label\", \"icon\", \"busy\", \"children\", \"spinner\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport * as React from 'react';\nimport { Spinner } from './Icon';\n\nfunction Button(_ref) {\n let {\n className,\n disabled,\n label,\n icon,\n busy,\n children,\n spinner = Spinner\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n tabIndex: -1\n }, props, {\n title: label,\n type: \"button\",\n disabled: disabled,\n \"aria-label\": label,\n \"aria-disabled\": disabled,\n className: cn(className, 'rw-btn')\n }), busy ? spinner : icon, children);\n}\n\nexport default Button;","const _excluded = [\"className\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport * as React from 'react';\nimport Button from './Button';\n\nfunction CalendarButton(_ref) {\n let {\n className\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Button, _extends({}, props, {\n tabIndex: undefined,\n className: cn(className, 'rw-calendar-btn')\n }));\n}\n\nexport default CalendarButton;","import React from 'react';\nimport CalendarButton from './CalendarButton';\nimport { caretDown, chevronLeft, chevronRight } from './Icon';\n\nfunction CalendarHeader({\n localizer,\n label,\n labelId,\n onMoveRight,\n onMoveToday,\n onMoveLeft,\n onViewChange,\n prevDisabled,\n todayDisabled,\n upDisabled,\n nextDisabled,\n navigatePrevIcon = chevronLeft,\n navigateNextIcon = chevronRight\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rw-calendar-header\"\n }, /*#__PURE__*/React.createElement(CalendarButton, {\n id: labelId,\n onClick: onViewChange,\n className: \"rw-calendar-btn-view\",\n disabled: upDisabled,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, label, \" \", caretDown), /*#__PURE__*/React.createElement(CalendarButton, {\n className: \"rw-calendar-btn-left\",\n onClick: onMoveLeft,\n disabled: prevDisabled,\n label: localizer.messages.moveBack(),\n icon: navigatePrevIcon\n }), /*#__PURE__*/React.createElement(CalendarButton, {\n className: \"rw-calendar-btn-today\",\n disabled: todayDisabled,\n onClick: onMoveToday\n }, localizer.messages.moveToday()), /*#__PURE__*/React.createElement(CalendarButton, {\n className: \"rw-calendar-btn-right\",\n onClick: onMoveRight,\n disabled: nextDisabled,\n label: localizer.messages.moveForward(),\n icon: navigateNextIcon\n }));\n}\n\nexport default CalendarHeader;","var MILI = 'milliseconds'\n , SECONDS = 'seconds'\n , MINUTES = 'minutes'\n , HOURS = 'hours'\n , DAY = 'day'\n , WEEK = 'week'\n , MONTH = 'month'\n , YEAR = 'year'\n , DECADE = 'decade'\n , CENTURY = 'century';\n\nvar multiplierMilli = {\n 'milliseconds': 1,\n 'seconds': 1000,\n 'minutes': 60 * 1000,\n 'hours': 60 * 60 * 1000,\n 'day': 24 * 60 * 60 * 1000,\n 'week': 7 * 24 * 60 * 60 * 1000 \n}\n\nvar multiplierMonth = {\n 'month': 1,\n 'year': 12,\n 'decade': 10 * 12,\n 'century': 100 * 12\n}\n\nfunction daysOf(year) {\n return [31, daysInFeb(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n}\n\nfunction daysInFeb(year) {\n return (\n year % 4 === 0 \n && year % 100 !== 0\n ) || year % 400 === 0\n ? 29\n : 28\n}\n\nexport function add(d, num, unit) {\n d = new Date(d)\n\n switch (unit){\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n return addMillis(d, num * multiplierMilli[unit])\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n return addMonths(d, num * multiplierMonth[unit])\n }\n\n throw new TypeError('Invalid units: \"' + unit + '\"')\n}\n\nfunction addMillis(d, num) {\n var nextDate = new Date(+(d) + num)\n\n return solveDST(d, nextDate)\n}\n\nfunction addMonths(d, num) {\n var year = d.getFullYear()\n , month = d.getMonth()\n , day = d.getDate()\n , totalMonths = year * 12 + month + num\n , nextYear = Math.trunc(totalMonths / 12)\n , nextMonth = totalMonths % 12\n , nextDay = Math.min(day, daysOf(nextYear)[nextMonth])\n\n var nextDate = new Date(d)\n nextDate.setFullYear(nextYear)\n\n // To avoid a bug when sets the Feb month\n // with a date > 28 or date > 29 (leap year)\n nextDate.setDate(1)\n\n nextDate.setMonth(nextMonth)\n nextDate.setDate(nextDay)\n\n return nextDate\n}\n\nfunction solveDST(currentDate, nextDate) {\n var currentOffset = currentDate.getTimezoneOffset()\n , nextOffset = nextDate.getTimezoneOffset()\n\n // if is DST, add the difference in minutes\n // else the difference is zero\n var diffMinutes = (nextOffset - currentOffset)\n\n return new Date(+(nextDate) + diffMinutes * multiplierMilli['minutes'])\n}\n\nexport function subtract(d, num, unit) {\n return add(d, -num, unit)\n}\n\nexport function startOf(d, unit, firstOfWeek) {\n d = new Date(d)\n\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n d = month(d, 0);\n case MONTH:\n d = date(d, 1);\n case WEEK:\n case DAY:\n d = hours(d, 0);\n case HOURS:\n d = minutes(d, 0);\n case MINUTES:\n d = seconds(d, 0);\n case SECONDS:\n d = milliseconds(d, 0);\n }\n\n if (unit === DECADE)\n d = subtract(d, year(d) % 10, 'year')\n\n if (unit === CENTURY)\n d = subtract(d, year(d) % 100, 'year')\n\n if (unit === WEEK)\n d = weekday(d, 0, firstOfWeek);\n\n return d\n}\n\nexport function endOf(d, unit, firstOfWeek){\n d = new Date(d)\n d = startOf(d, unit, firstOfWeek)\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n case MONTH:\n case WEEK:\n d = add(d, 1, unit)\n d = subtract(d, 1, DAY)\n d.setHours(23, 59, 59, 999)\n break;\n case DAY:\n d.setHours(23, 59, 59, 999)\n break;\n case HOURS:\n case MINUTES:\n case SECONDS:\n d = add(d, 1, unit)\n d = subtract(d, 1, MILI)\n }\n return d\n}\n\nexport var eq = createComparer(function(a, b){ return a === b })\nexport var neq = createComparer(function(a, b){ return a !== b })\nexport var gt = createComparer(function(a, b){ return a > b })\nexport var gte = createComparer(function(a, b){ return a >= b })\nexport var lt = createComparer(function(a, b){ return a < b })\nexport var lte = createComparer(function(a, b){ return a <= b })\n\nexport function min(){\n return new Date(Math.min.apply(Math, arguments))\n}\n\nexport function max(){\n return new Date(Math.max.apply(Math, arguments))\n}\n\nexport function inRange(day, min, max, unit){\n unit = unit || 'day'\n\n return (!min || gte(day, min, unit))\n && (!max || lte(day, max, unit))\n}\n\nexport var milliseconds = createAccessor('Milliseconds')\nexport var seconds = createAccessor('Seconds')\nexport var minutes = createAccessor('Minutes')\nexport var hours = createAccessor('Hours')\nexport var day = createAccessor('Day')\nexport var date = createAccessor('Date')\nexport var month = createAccessor('Month')\nexport var year = createAccessor('FullYear')\n\nexport function decade(d, val) {\n return val === undefined\n ? year(startOf(d, DECADE))\n : add(d, val + 10, YEAR);\n}\n\nexport function century(d, val) {\n return val === undefined\n ? year(startOf(d, CENTURY))\n : add(d, val + 100, YEAR);\n}\n\nexport function weekday(d, val, firstDay) {\n var w = (day(d) + 7 - (firstDay || 0) ) % 7;\n\n return val === undefined\n ? w\n : add(d, val - w, DAY);\n}\n\nexport function diff(date1, date2, unit, asFloat) {\n var dividend, divisor, result;\n\n switch (unit) {\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n dividend = date2.getTime() - date1.getTime(); break;\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n dividend = (year(date2) - year(date1)) * 12 + month(date2) - month(date1); break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n switch (unit) {\n case MILI:\n divisor = 1; break;\n case SECONDS:\n divisor = 1000; break;\n case MINUTES:\n divisor = 1000 * 60; break;\n case HOURS:\n divisor = 1000 * 60 * 60; break;\n case DAY:\n divisor = 1000 * 60 * 60 * 24; break;\n case WEEK:\n divisor = 1000 * 60 * 60 * 24 * 7; break;\n case MONTH:\n divisor = 1; break;\n case YEAR:\n divisor = 12; break;\n case DECADE:\n divisor = 120; break;\n case CENTURY:\n divisor = 1200; break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n result = dividend / divisor;\n\n return asFloat ? result : Math.round(result);\n}\n\nfunction createAccessor(method){\n var hourLength = (function(method) { \n switch(method) {\n case 'Milliseconds':\n return 3600000;\n case 'Seconds':\n return 3600;\n case 'Minutes':\n return 60;\n case 'Hours':\n return 1;\n default:\n return null;\n }\n })(method);\n \n return function(d, val){\n if (val === undefined)\n return d['get' + method]()\n\n var dateOut = new Date(d)\n dateOut['set' + method](val)\n \n if(hourLength && dateOut['get'+method]() != val && (method === 'Hours' || val >=hourLength && (dateOut.getHours()-d.getHours() dte == null || isNaN(+dte);\nlet dates = Object.assign({}, dateMath, {\n merge(date, time, defaultDate) {\n if (isNullOrInvalid(time) && isNullOrInvalid(date) == null) return null;\n if (isNullOrInvalid(time)) time = defaultDate || new Date();\n if (isNullOrInvalid(date)) date = defaultDate || new Date();\n date = dates.startOf(date, 'day');\n date = dates.hours(date, dates.hours(time));\n date = dates.minutes(date, dates.minutes(time));\n date = dates.seconds(date, dates.seconds(time));\n return dates.milliseconds(date, dates.milliseconds(time));\n }\n\n});\nexport default dates;","var matchesImpl;\n/**\n * Checks if a given element matches a selector.\n * \n * @param node the element\n * @param selector the selector\n */\n\nexport default function matches(node, selector) {\n if (!matchesImpl) {\n var body = document.body;\n var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;\n\n matchesImpl = function matchesImpl(n, s) {\n return nativeMatch.call(n, s);\n };\n }\n\n return matchesImpl(node, selector);\n}","import { useState } from 'react';\nimport useFocusManagerBase from '@restart/hooks/useFocusManager';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMounted from '@restart/hooks/useMounted';\nimport matches from 'dom-helpers/matches';\n\nconst isInDisabledFieldset = node => {\n return !!node && matches(node, 'fieldset[disabled] *');\n};\n\nexport default function useFocusManager(ref, props = {}, opts = {}) {\n const isMounted = useMounted();\n const [focused, setFocus] = useState(false);\n const isDisabled = useEventCallback(() => props.disabled === true || isInDisabledFieldset(ref.current));\n const events = useFocusManagerBase(Object.assign({}, opts, {\n isDisabled,\n onChange: focused => {\n if (isMounted()) setFocus(focused);\n },\n\n didHandle(focused, event) {\n let handler = props[focused ? 'onFocus' : 'onBlur'];\n if (handler) handler(event); // @ts-ignore used by work\n\n if (opts.didHandle && !event.isWidgetDefaultPrevented) opts.didHandle(focused, event);\n }\n\n }));\n return [events, focused, setFocus];\n}","import { useCallback, useMemo, useRef } from 'react';\nimport useEventCallback from './useEventCallback';\nimport useMounted from './useMounted';\n\n/**\n * useFocusManager provides a way to track and manage focus as it moves around\n * a container element. An `onChange` is fired when focus enters or leaves the\n * element, but not when it moves around inside the element, similar to\n * `pointerenter` and `pointerleave` DOM events.\n *\n * ```tsx\n * const [focused, setFocusState] = useState(false)\n *\n * const { onBlur, onFocus } = useFocusManager({\n * onChange: nextFocused => setFocusState(nextFocused)\n * })\n *\n * return (\n *
    \n * {String(focused)}\n * \n * \n *\n * \n *
    \n * ```\n *\n * @returns a memoized FocusController containing event handlers\n */\nexport default function useFocusManager(opts) {\n var isMounted = useMounted();\n var lastFocused = useRef();\n var handle = useRef();\n var willHandle = useEventCallback(opts.willHandle);\n var didHandle = useEventCallback(opts.didHandle);\n var onChange = useEventCallback(opts.onChange);\n var isDisabled = useEventCallback(opts.isDisabled);\n var handleFocusChange = useCallback(function (focused, event) {\n if (event && event.persist) event.persist();\n if (willHandle && willHandle(focused, event) === false) return;\n clearTimeout(handle.current);\n handle.current = window.setTimeout(function () {\n if (focused !== lastFocused.current) {\n if (didHandle) didHandle(focused, event); // only fire a change when unmounted if its a blur\n\n if (isMounted() || !focused) {\n lastFocused.current = focused;\n onChange && onChange(focused, event);\n }\n }\n });\n }, [isMounted, willHandle, didHandle, onChange, lastFocused]);\n var handleBlur = useCallback(function (event) {\n if (!isDisabled()) handleFocusChange(false, event);\n }, [handleFocusChange, isDisabled]);\n var handleFocus = useCallback(function (event) {\n if (!isDisabled()) handleFocusChange(true, event);\n }, [handleFocusChange, isDisabled]);\n return useMemo(function () {\n return {\n onBlur: handleBlur,\n onFocus: handleFocus\n };\n }, [handleBlur, handleFocus]);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport cn from 'classnames';\nimport React, { useEffect, useRef } from 'react';\nimport dates from './dates';\nimport useFocusManager from './useFocusManager';\n\nfunction clamp(date, min, max) {\n return dates.max(dates.min(date, max), min);\n}\n\nfunction CalendarView({\n className,\n focusedItem,\n onKeyDown,\n children,\n 'aria-labelledby': labelledby\n}) {\n const ref = useRef(null);\n const [focusEvents, focused] = useFocusManager(ref);\n useEffect(() => {\n var _node$querySelector;\n\n const node = ref.current;\n if (!node || !focused) return;\n (_node$querySelector = node.querySelector('.rw-cell[tabindex]')) == null ? void 0 : _node$querySelector.focus();\n }, [focusedItem, focused, ref]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"grid\",\n ref: ref,\n tabIndex: -1\n }, focusEvents, {\n onKeyDown: onKeyDown,\n \"aria-labelledby\": labelledby,\n className: cn(className, 'rw-nav-view', 'rw-calendar-grid')\n }), children);\n}\n\nfunction CalendarViewCell({\n onChange,\n min,\n max,\n date,\n unit,\n disabled,\n selected,\n focusedItem,\n viewUnit,\n children,\n label\n}) {\n const isEqual = nextDate => dates.eq(date, nextDate, unit);\n\n const isEmpty = !dates.inRange(date, min, max, unit);\n const isDisabled = disabled || isEmpty; // const isNow = now && isEqual(now)\n\n const isFocused = !disabled && !isEmpty && isEqual(focusedItem);\n const isSelected = selected && isEqual(selected);\n const isOffView = date && focusedItem && viewUnit && dates[viewUnit](date) !== dates[viewUnit](focusedItem);\n\n const handleChange = () => {\n onChange(clamp(date, min, max));\n };\n\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"gridcell\",\n title: label,\n \"aria-label\": label,\n \"aria-readonly\": disabled,\n \"aria-selected\": Boolean(isSelected),\n tabIndex: isFocused ? 0 : void 0,\n onClick: !isDisabled ? handleChange : undefined,\n className: cn('rw-cell', // isNow && 'rw-now',\n isDisabled && 'rw-state-disabled', isEmpty && 'rw-cell-not-allowed', isOffView && 'rw-cell-off-range', isSelected && 'rw-state-selected')\n }, /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true\n }, children));\n}\n\nCalendarView.Body = props => /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"rowgroup\",\n className: \"rw-calendar-body\"\n}, props));\n\nCalendarView.Row = props => /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"row\",\n className: \"rw-calendar-row\"\n}, props));\n\nCalendarView.Cell = CalendarViewCell;\nexport default CalendarView;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\nimport warning from 'tiny-warning';\nexport function toItemArray(a) {\n if (Array.isArray(a)) return a;\n return [];\n}\nexport const makeArray = (obj, excludeNull = true) => {\n const result = [];\n return excludeNull ? obj == null ? result : result.concat(obj) : result.concat(obj);\n};\nexport const has = (o, key) => o ? Object.prototype.hasOwnProperty.call(o, key) : false;\nexport function chunk(array, chunkSize) {\n let index = 0;\n let length = array ? array.length : 0;\n let result = [];\n chunkSize = Math.max(+chunkSize || 1, 1);\n\n while (index < length) result.push(array.slice(index, index += chunkSize));\n\n return result;\n}\nexport function groupBySortedKeys(groupBy, data, _keys = []) {\n const iter = typeof groupBy === 'function' ? groupBy : item => item[groupBy];\n warning(typeof groupBy !== 'string' || !data.length || has(data[0], groupBy), `[React Widgets] You seem to be trying to group this list by a ` + `property \\`${groupBy}\\` that doesn't exist in the dataset items, this may be a typo`);\n const groups = new Map();\n data.forEach(item => {\n let group = iter(item);\n if (groups.has(group)) groups.get(group).push(item);else groups.set(group, [item]);\n });\n return Array.from(groups);\n}","const _excluded = [\"focusedItem\", \"disabled\", \"onChange\", \"value\", \"localizer\", \"min\", \"max\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useMemo } from 'react';\nimport CalendarView from './CalendarView';\nimport { chunk } from './_';\nimport dates from './dates';\n\nfunction CenturyView(_ref) {\n let {\n focusedItem,\n disabled,\n onChange,\n value,\n localizer,\n min,\n max\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const chunks = useMemo(() => chunk(getCenturyDecades(focusedItem), 4), [focusedItem]);\n return /*#__PURE__*/React.createElement(CalendarView, _extends({}, props, {\n focusedItem: focusedItem\n }), /*#__PURE__*/React.createElement(CalendarView.Body, null, chunks.map((row, rowIdx) => /*#__PURE__*/React.createElement(CalendarView.Row, {\n key: rowIdx\n }, row.map((date, colIdx) => {\n let label = localizer.formatDate(dates.startOf(date, 'decade'), 'decade');\n return /*#__PURE__*/React.createElement(CalendarView.Cell, {\n key: colIdx,\n unit: \"decade\",\n viewUnit: \"century\",\n label: label,\n date: date,\n min: min,\n max: max,\n onChange: onChange,\n focusedItem: focusedItem,\n selected: value,\n disabled: disabled\n }, label);\n })))));\n}\n\nfunction getCenturyDecades(_date) {\n let days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n let date = dates.add(dates.startOf(_date, 'century'), -20, 'year');\n return days.map(() => date = dates.add(date, 10, 'year'));\n}\n\nexport default CenturyView;","const _excluded = [\"focusedItem\", \"disabled\", \"onChange\", \"value\", \"localizer\", \"min\", \"max\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useMemo } from 'react';\nimport CalendarView from './CalendarView';\nimport { chunk } from './_';\nimport dates from './dates';\n\nfunction DecadeView(_ref) {\n let {\n focusedItem,\n disabled,\n onChange,\n value,\n localizer,\n min,\n max\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const chunks = useMemo(() => chunk(getDecadeYears(focusedItem), 4), [focusedItem]);\n return /*#__PURE__*/React.createElement(CalendarView, _extends({}, props, {\n focusedItem: focusedItem\n }), /*#__PURE__*/React.createElement(CalendarView.Body, null, chunks.map((row, rowIdx) => /*#__PURE__*/React.createElement(CalendarView.Row, {\n key: rowIdx\n }, row.map((date, colIdx) => {\n let label = localizer.formatDate(date, 'year');\n return /*#__PURE__*/React.createElement(CalendarView.Cell, {\n key: colIdx,\n unit: \"year\",\n viewUnit: \"decade\",\n label: label,\n date: date,\n min: min,\n max: max,\n onChange: onChange,\n focusedItem: focusedItem,\n selected: value,\n disabled: disabled\n }, label);\n })))));\n}\n\nfunction getDecadeYears(_date) {\n let days = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n let date = dates.add(dates.startOf(_date, 'decade'), -2, 'year');\n return days.map(() => date = dates.add(date, 1, 'year'));\n}\n\nexport default DecadeView;","import dates from './dates';\n// assumes both are supported or none\nlet supportStyles = false;\nnew Intl.DateTimeFormat(undefined, {\n // @ts-ignore\n get dateStyle() {\n supportStyles = true;\n }\n\n});\nconst dateShort = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric'\n};\nconst timeShort = {\n hour: 'numeric',\n minute: 'numeric'\n};\n\nconst getFormatter = (culture, options) => Intl.DateTimeFormat(culture, options).format;\n/**\n * A `react-widgets` Localizer using native `Intl` APIs.\n *\n */\n\n\nclass IntlDateLocalizer {\n constructor({\n culture = undefined,\n firstOfWeek = 0\n } = {}) {\n this.culture = culture;\n\n this.firstOfWeek = () => firstOfWeek;\n\n function normalizeFormat(date, format) {\n return typeof format === 'function' ? format(date, culture) : date.toLocaleString(culture, format);\n }\n\n const formats = {\n date: getFormatter(culture, // @ts-ignore\n supportStyles ? {\n dateStyle: 'short'\n } : dateShort),\n time: getFormatter(culture, // @ts-ignore\n supportStyles ? {\n timeStyle: 'short'\n } : timeShort),\n datetime: getFormatter(culture, // @ts-ignore\n supportStyles ? {\n dateStyle: 'short',\n timeStyle: 'short'\n } : Object.assign({}, dateShort, timeShort)),\n header: getFormatter(culture, {\n month: 'short',\n year: 'numeric'\n }),\n weekday: getFormatter(culture, {\n weekday: 'narrow'\n }),\n dayOfMonth: getFormatter(culture, {\n day: '2-digit'\n }),\n month: getFormatter(culture, {\n month: 'short'\n }),\n year: getFormatter(culture, {\n year: 'numeric'\n }),\n decade: date => `${this.year(date)} - ${this.year(dates.endOf(date, 'decade'))}`,\n century: date => `${this.year(date)} - ${this.year(dates.endOf(date, 'century'))}`\n };\n Object.keys(formats).forEach(key => {\n this[key] = (date, format) => format ? normalizeFormat(date, format) : formats[key](date);\n });\n }\n\n toFormattedParts(date, format = {\n dateStyle: 'short',\n timeStyle: 'short'\n }) {\n return Intl.DateTimeFormat(this.culture, format).formatToParts(date).filter(p => p.type !== 'timeZoneName');\n }\n\n parse(value) {\n const date = new Date(value);\n return isNaN(+date) ? null : date;\n }\n\n}\n\n/**\n * A number localization strategy based on `Intl.NumberFormat`.\n */\nclass IntlNumberLocalizer {\n constructor({\n culture = undefined\n } = {}) {\n var _$toLocaleString$m;\n\n this.culture = culture;\n const decimal = 'formatToParts' in Intl.NumberFormat(culture) ? Intl.NumberFormat(culture).formatToParts(1.1)[1].value : ((_$toLocaleString$m = 1.1.toLocaleString(culture).match(/[^\\d]/)) == null ? void 0 : _$toLocaleString$m[0]) || '.';\n const formatter = Intl.NumberFormat(culture).format;\n\n this.decimalCharacter = () => decimal;\n\n this.format = (num, format) => {\n if (format) {\n return typeof format === 'function' ? format(num, culture) : num.toLocaleString(culture, format);\n }\n\n return formatter(num);\n };\n }\n\n parse(value) {\n return parseFloat(value.replace(this.decimalCharacter(), '.'));\n }\n\n}\n\nexport { IntlDateLocalizer as DateLocalizer, IntlNumberLocalizer as NumberLocalizer };","import * as React from 'react';\nimport { useMemo } from 'react';\nconst messages = {\n moveToday: 'Today',\n moveBack: 'Navigate back',\n moveForward: 'Navigate forward',\n dateButton: 'Select date',\n openCombobox: 'open combobox',\n emptyList: 'There are no items in this list',\n emptyFilter: 'The filter returned no results',\n createOption: (_value, searchTerm) => [' Create option', searchTerm && ' ', searchTerm && /*#__PURE__*/React.createElement(\"strong\", {\n key: \"_\"\n }, `\"${searchTerm}\"`)],\n tagsLabel: 'Selected items',\n removeLabel: 'Remove selected item',\n noneSelected: 'no selected items',\n selectedItems: labels => `Selected items: ${labels.join(', ')}`,\n // number\n increment: 'Increment value',\n decrement: 'Decrement value'\n};\nconst DEFAULTS = {};\nexport function getMessages(defaults = DEFAULTS) {\n let processed = {};\n Object.keys(messages).forEach(message => {\n let value = defaults[message];\n if (value == null) value = messages[message];\n processed[message] = typeof value === 'function' ? value : () => value;\n });\n return processed;\n}\nexport const useMessagesWithDefaults = defaults => useMemo(() => getMessages(defaults), [defaults]);","import React, { useContext, useMemo } from 'react';\nimport * as IntlLocalizers from './IntlLocalizer';\nimport { getMessages } from './messages';\n\nfunction mergeWithDefaults(date, number, messages, formatOverrides = {}) {\n if (!date && !number) throw new Error('This component requires a Localizer but none was provided');\n return {\n formatOverrides,\n messages: getMessages(messages),\n\n formatDate(value, format, userFormat) {\n return date[format](value, userFormat != null ? userFormat : this.formatOverrides[format]);\n },\n\n formatNumber(value, userFormat) {\n return number.format(value, userFormat != null ? userFormat : this.formatOverrides.number);\n },\n\n parseDate: date.parse.bind(date),\n parseNumber: number.parse.bind(number),\n decimalCharacter: number.decimalCharacter.bind(number),\n firstOfWeek: date.firstOfWeek.bind(date)\n };\n}\n\nconst LocalizerContext = /*#__PURE__*/React.createContext(mergeWithDefaults(new IntlLocalizers.DateLocalizer(), new IntlLocalizers.NumberLocalizer()));\n\nconst Localization = ({\n date: _date = new IntlLocalizers.DateLocalizer(),\n number: _number = new IntlLocalizers.NumberLocalizer(),\n messages,\n children\n}) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const localizer = useMemo(() => mergeWithDefaults(_date, _number, messages), [_date, _number, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(messages)]);\n return /*#__PURE__*/React.createElement(LocalizerContext.Provider, {\n value: localizer\n }, children);\n};\n\nexport const useLocalizer = (messages, formats) => {\n const localizer = useContext(LocalizerContext);\n return useMemo(() => {\n if (!messages && !formats) return localizer;\n return Object.assign({}, localizer, {\n messages: getMessages(Object.assign({}, localizer.messages, messages)),\n formatOverrides: Object.assign({}, localizer.formatOverrides, formats)\n });\n }, [messages, formats, localizer]);\n};\nLocalization.useLocalizer = useLocalizer;\nexport default Localization;","const _excluded = [\"className\", \"focusedItem\", \"disabled\", \"onChange\", \"value\", \"min\", \"max\", \"localizer\", \"renderDay\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport React from 'react';\nimport CalendarView from './CalendarView';\nimport { chunk } from './_';\nimport dates from './dates';\n\nfunction visibleDays(date, weekStart) {\n let current = dates.startOf(dates.startOf(date, 'month'), 'week', weekStart);\n let last = dates.endOf(dates.endOf(date, 'month'), 'week', weekStart);\n let days = [];\n\n while (dates.lte(current, last, 'day')) {\n days.push(current);\n current = dates.add(current, 1, 'day');\n }\n\n return days;\n}\n\nfunction MonthView(_ref) {\n let {\n className,\n focusedItem,\n disabled,\n onChange,\n value,\n min,\n max,\n localizer,\n renderDay\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n let month = visibleDays(focusedItem, localizer.firstOfWeek());\n let rows = chunk(month, 7);\n return /*#__PURE__*/React.createElement(CalendarView, _extends({}, props, {\n focusedItem: focusedItem,\n className: cn(className, 'rw-calendar-month')\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"rowgroup\",\n className: \"rw-calendar-head\"\n }, /*#__PURE__*/React.createElement(CalendarView.Row, {\n className: \"rw-calendar-row\"\n }, rows[0].map((date, idx) => /*#__PURE__*/React.createElement(\"div\", {\n role: \"columnheader\",\n className: \"rw-head-cell\",\n key: idx\n }, localizer.formatDate(date, 'weekday'))))), /*#__PURE__*/React.createElement(CalendarView.Body, null, rows.map((row, rowIdx) => /*#__PURE__*/React.createElement(CalendarView.Row, {\n key: rowIdx\n }, row.map((date, colIdx) => {\n let formattedDate = localizer.formatDate(date, 'dayOfMonth');\n let label = localizer.formatDate(date, 'date');\n return /*#__PURE__*/React.createElement(CalendarView.Cell, {\n key: colIdx,\n label: label,\n date: date,\n min: min,\n max: max,\n unit: \"day\",\n viewUnit: \"month\",\n onChange: onChange,\n focusedItem: focusedItem,\n selected: value,\n disabled: disabled\n }, renderDay ? renderDay({\n date,\n label: formattedDate\n }) : formattedDate);\n })))));\n}\n\nexport default MonthView;","const _excluded = [\"direction\", \"children\", \"onTransitionEnd\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nconst DirectionPropType = PropTypes.oneOf(['left', 'right', 'top', 'bottom']);\nconst prefix = 'rw-calendar-transition';\nconst active = 'rw-calendar-transition-active';\nconst next = 'rw-calendar-transition-next';\nconst prev = 'rw-calendar-transition-prev';\n\nconst clone = (el, cls) => el && /*#__PURE__*/React.cloneElement(el, {\n className: cn(el.props.className, prefix, cls)\n});\n\nclass SlideTransitionGroup extends React.Component {\n constructor(args) {\n super(args);\n\n this.handleTransitionEnd = hadFocus => {\n this.isTransitioning = false;\n let current = this.container.current.lastChild;\n if (this.props.onTransitionEnd) this.props.onTransitionEnd(current, hadFocus);\n };\n\n this.current = this.props.children;\n this.container = /*#__PURE__*/React.createRef();\n this.state = {\n prevClasses: '',\n currentClasses: ''\n };\n }\n\n componentDidUpdate() {\n if (!this.flush || this.isTransitioning) return;\n this.flush = false;\n this.isTransitioning = true;\n let previous = this.container.current.firstChild;\n const hadFocus = document.activeElement && previous.contains(document.activeElement);\n this.setState({\n prevClasses: '',\n currentClasses: next\n }, () => {\n let current = this.container.current.lastChild;\n current.clientHeight; // eslint-disable-line\n\n this.setState({\n prevClasses: prev,\n currentClasses: cn(next, active)\n }, () => {\n transitionEnd(current, () => {\n this.prev = null;\n\n if (this.current.key !== this.props.children.key) {\n this.current = this.props.children;\n }\n\n this.setState({\n prevClasses: '',\n currentClasses: ''\n }, () => this.handleTransitionEnd(hadFocus));\n });\n });\n });\n }\n\n render() {\n let _this$props = this.props,\n {\n direction,\n children\n } = _this$props,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n if (!this.isTransitioning) {\n if (this.current.key !== children.key) {\n this.prev = this.current;\n this.flush = true;\n }\n\n this.current = children;\n }\n\n let {\n prevClasses,\n currentClasses\n } = this.state;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n ref: this.container,\n className: cn(`rw-calendar-transition-group`, direction === 'top' && 'rw-calendar-transition-top', direction === 'right' && 'rw-calendar-transition-right', direction === 'bottom' && 'rw-calendar-transition-bottom', direction === 'left' && 'rw-calendar-transition-left')\n }), clone(this.prev, prevClasses), clone(this.current, currentClasses));\n }\n\n}\n\nSlideTransitionGroup.defaultProps = {\n direction: 'left'\n};\nSlideTransitionGroup.propTypes = {\n direction: DirectionPropType,\n onTransitionEnd: PropTypes.func\n};\nexport default SlideTransitionGroup;","import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n var handler = useEventCallback(listener);\n useEffect(function () {\n var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n target.addEventListener(event, handler, capture);\n return function () {\n return target.removeEventListener(event, handler, capture);\n };\n }, [eventTarget]);\n}","import useEventListener from './useEventListener';\nimport { useCallback } from 'react';\n\n/**\n * Attaches an event handler outside directly to the `document`,\n * bypassing the react synthetic event system.\n *\n * ```ts\n * useGlobalListener('keydown', (event) => {\n * console.log(event.key)\n * })\n * ```\n *\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useGlobalListener(event, handler, capture) {\n if (capture === void 0) {\n capture = false;\n }\n\n var documentTarget = useCallback(function () {\n return document;\n }, []);\n return useEventListener(documentTarget, event, handler, capture);\n}","const _excluded = [\"className\", \"tabIndex\", \"focused\", \"open\", \"dropUp\", \"disabled\", \"readOnly\", \"autofilling\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport React, { useState } from 'react';\nimport useGlobalListener from '@restart/hooks/useGlobalListener';\n\nfunction useKeyboardNavigationCheck() {\n const [isNavigatingViaKeyboard, setIsNavigatingViaKeyboard] = useState(false);\n useGlobalListener('keydown', ({\n key\n }) => {\n if (key == ' ' || key === 'Tab' || key == 'Enter' || key && key.indexOf('Arrow') !== -1) {\n setIsNavigatingViaKeyboard(true);\n }\n }); // TODO: use pointerdown\n\n useGlobalListener('mousedown', () => {\n setIsNavigatingViaKeyboard(false);\n });\n return isNavigatingViaKeyboard;\n}\n\nexport function useWidgetProps(props) {\n const tabIndex = props.tabIndex != null ? props.tabIndex : -1;\n const isKeyboardNavigating = useKeyboardNavigationCheck();\n return {\n tabIndex: tabIndex,\n 'data-intent': isKeyboardNavigating ? 'keyboard' : 'mouse',\n className: cn(props.className, 'rw-widget', props.disabled && 'rw-state-disabled', props.readOnly && 'rw-state-readonly', props.focused && 'rw-state-focus', props.autofilling && 'rw-webkit-autofill', props.open && `rw-open${props.dropUp ? '-up' : ''}`)\n };\n}\nconst Widget = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n className,\n tabIndex,\n focused,\n open,\n dropUp,\n disabled,\n readOnly,\n autofilling\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const widgetProps = useWidgetProps({\n className,\n tabIndex,\n focused,\n open,\n dropUp,\n disabled,\n readOnly,\n autofilling\n });\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, props, widgetProps));\n});\nWidget.displayName = 'Widget';\nexport default Widget;","const _excluded = [\"focusedItem\", \"disabled\", \"onChange\", \"value\", \"min\", \"localizer\", \"max\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport CalendarView from './CalendarView';\nimport { chunk } from './_';\nimport dates from './dates';\nconst months = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\nfunction monthsInYear(year) {\n let date = new Date(year, 0, 1);\n return months.map(i => dates.month(date, i));\n}\n\nfunction YearView(_ref) {\n let {\n focusedItem,\n disabled,\n onChange,\n value,\n min,\n localizer,\n max\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n let months = monthsInYear(dates.year(focusedItem));\n return /*#__PURE__*/React.createElement(CalendarView, _extends({}, props, {\n focusedItem: focusedItem\n }), /*#__PURE__*/React.createElement(CalendarView.Body, null, chunk(months, 4).map((row, rowIdx) => /*#__PURE__*/React.createElement(CalendarView.Row, {\n key: rowIdx\n }, row.map((date, colIdx) => {\n let label = localizer.formatDate(date, 'header');\n return /*#__PURE__*/React.createElement(CalendarView.Cell, {\n key: colIdx,\n label: label,\n date: date,\n min: min,\n max: max,\n unit: \"month\",\n viewUnit: \"year\",\n onChange: onChange,\n focusedItem: focusedItem,\n selected: value,\n disabled: disabled\n }, localizer.formatDate(date, 'month'));\n })))));\n}\n\nexport default YearView;","import { useEffect } from 'react';\nexport default function useAutoFocus(autoFocus, ref) {\n useEffect(() => {\n if (autoFocus && ref.current) ref.current.focus(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n}","import { useRef } from 'react';\nlet idCount = 0;\n\nfunction uniqueId(prefix) {\n return '' + ((prefix == null ? '' : prefix) + ++idCount);\n}\n\nexport function notify(handler, args) {\n // eslint-disable-next-line prefer-spread\n if (handler) handler.apply(null, args);\n}\nexport const useInstanceId = (otherId, suffix = '') => {\n const id = useRef();\n if (!id.current) id.current = uniqueId('rw_');\n return (otherId || id.current) + suffix;\n};\n/**\n * Allows for defering popup rendering untill the widget is focused,\n * or has been opened (in order to not remove it suddenly on close)\n */\n\nexport function useFirstFocusedRender(focused, open) {\n const ref = useRef(false);\n return ref.current || (focused || !!open) && (ref.current = true);\n}","const _excluded = [\"id\", \"autoFocus\", \"bordered\", \"views\", \"tabIndex\", \"disabled\", \"readOnly\", \"className\", \"value\", \"defaultValue\", \"onChange\", \"currentDate\", \"defaultCurrentDate\", \"onCurrentDateChange\", \"min\", \"max\", \"view\", \"defaultView\", \"onViewChange\", \"onKeyDown\", \"onNavigate\", \"renderDay\", \"messages\", \"formats\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef } from 'react';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport CalendarHeader from './CalendarHeader';\nimport Century from './Century';\nimport Decade from './Decade';\nimport { useLocalizer } from './Localization';\nimport Month from './Month';\nimport SlideTransitionGroup from './SlideTransitionGroup';\nimport Widget from './Widget';\nimport Year from './Year';\nimport dates from './dates';\nimport useAutoFocus from './useAutoFocus';\nimport useFocusManager from './useFocusManager';\nimport { notify, useInstanceId } from './WidgetHelpers';\n\nlet last = a => a[a.length - 1];\n\nconst CELL_CLASSNAME = 'rw-cell';\nconst FOCUSED_CELL_SELECTOR = `.${CELL_CLASSNAME}[tabindex]`;\nconst MIN = new Date(1900, 0, 1);\nconst MAX = new Date(2099, 11, 31);\nconst VIEW_OPTIONS = ['month', 'year', 'decade', 'century'];\nconst VIEW_UNIT = {\n month: 'day',\n year: 'month',\n decade: 'year',\n century: 'decade'\n};\nconst VIEW = {\n month: Month,\n year: Year,\n decade: Decade,\n century: Century\n};\nconst ARROWS_TO_DIRECTION = {\n ArrowDown: 'DOWN',\n ArrowUp: 'UP',\n ArrowRight: 'RIGHT',\n ArrowLeft: 'LEFT'\n};\nconst OPPOSITE_DIRECTION = {\n LEFT: 'RIGHT',\n RIGHT: 'LEFT'\n};\nconst MULTIPLIER = {\n year: 1,\n decade: 10,\n century: 100\n};\n\nfunction inRangeValue(_value, min, max) {\n let value = dateOrNull(_value);\n if (value === null) return value;\n return dates.max(dates.min(value, max), min);\n}\n\nconst propTypes = {\n /**\n * @example ['disabled', ['new Date()']]\n */\n disabled: PropTypes.bool,\n\n /**\n * @example ['readOnly', ['new Date()']]\n */\n readOnly: PropTypes.bool,\n\n /**\n * @example ['onChangePicker', [ ['new Date()'] ]]\n */\n onChange: PropTypes.func,\n\n /**\n * The selected Date.\n *\n * ```tsx live\n * import { Calendar } from 'react-widgets';\n *\n * \n * ```\n * @example false\n */\n value: PropTypes.instanceOf(Date),\n\n /**\n * The minimum date that the Calendar can navigate from.\n *\n * @example ['prop', ['min', 'new Date()']]\n */\n min: PropTypes.instanceOf(Date),\n\n /**\n * The maximum date that the Calendar can navigate to.\n *\n * @example ['prop', ['max', 'new Date()']]\n */\n max: PropTypes.instanceOf(Date),\n\n /**\n * Default current date at which the calendar opens. If none is provided, opens at today's date or the `value` date (if any).\n */\n currentDate: PropTypes.instanceOf(Date),\n\n /**\n * Change event Handler that is called when the currentDate is changed. The handler is called with the currentDate object.\n */\n onCurrentDateChange: PropTypes.func,\n\n /** Specify the navigate into the past header icon */\n navigatePrevIcon: PropTypes.node,\n\n /** Specify the navigate into the future header icon */\n navigateNextIcon: PropTypes.node,\n\n /**\n * Controls the currently displayed calendar view. Use `defaultView` to set a unique starting view.\n *\n * @type {(\"month\"|\"year\"|\"decade\"|\"century\")}\n * @controllable onViewChange\n */\n view(props, ...args) {\n // @ts-ignore\n return PropTypes.oneOf(props.views || VIEW_OPTIONS)(props, ...args);\n },\n\n /**\n * Defines a list of views the Calendar can traverse through, starting with the\n * first in the list to the last.\n *\n * @type array<\"month\"|\"year\"|\"decade\"|\"century\">\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(VIEW_OPTIONS)),\n\n /**\n * A callback fired when the `view` changes.\n *\n * @controllable view\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback fired when the Calendar navigates between views, or forward and backwards in time.\n *\n * @type function(date: ?Date, direction: string, view: string)\n */\n onNavigate: PropTypes.func,\n culture: PropTypes.string,\n autoFocus: PropTypes.bool,\n\n /**\n * Show or hide the Calendar footer.\n *\n * @example ['prop', ['footer', true]]\n */\n footer: PropTypes.bool,\n\n /**\n * Provide a custom component to render the days of the month. The Component is provided the following props\n *\n * - `date`: a `Date` object for the day of the month to render\n * - `label`: a formatted `string` of the date to render. To adjust the format of the `label` string use the `dateFormat` prop, listed below.\n */\n renderDay: PropTypes.func,\n formats: PropTypes.shape({\n /**\n * A formatter for the header button of the month view.\n *\n * @example ['dateFormat', ['headerFormat', \"{ date: 'medium' }\"]]\n */\n header: PropTypes.any,\n\n /**\n * A formatter for the Calendar footer, formats today's Date as a string.\n *\n * @example ['dateFormat', ['footerFormat', \"{ date: 'medium' }\", \"date => 'Today is: ' + formatter(date)\"]]\n */\n footer: PropTypes.any,\n\n /**\n * A formatter calendar days of the week, the default formats each day as a Narrow name: \"Mo\", \"Tu\", etc.\n *\n * @example ['prop', { day: \"day => \\n['🎉', 'M', 'T','W','Th', 'F', '🎉'][day.getDay()]\" }]\n */\n day: PropTypes.any,\n\n /**\n * A formatter for day of the month\n *\n * @example ['prop', { date: \"dt => String(dt.getDate())\" }]\n */\n date: PropTypes.any,\n\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['monthFormat', \"{ raw: 'MMMM' }\", null, { defaultView: '\"year\"' }]]\n */\n month: PropTypes.any,\n\n /**\n * A formatter for month name.\n *\n * @example ['dateFormat', ['yearFormat', \"{ raw: 'yy' }\", null, { defaultView: '\"decade\"' }]]\n */\n year: PropTypes.any,\n\n /**\n * A formatter for decade, the default formats the first and last year of the decade like: 2000 - 2009.\n */\n decade: PropTypes.any,\n\n /**\n * A formatter for century, the default formats the first and last year of the century like: 1900 - 1999.\n */\n century: PropTypes.any\n }),\n messages: PropTypes.shape({\n moveBack: PropTypes.string,\n moveForward: PropTypes.string\n }),\n onKeyDown: PropTypes.func,\n\n /** @ignore */\n tabIndex: PropTypes.any\n};\n\nconst useViewState = (views, view = views[0], currentDate) => {\n const lastView = useRef(view);\n const lastDate = useRef(currentDate);\n let slideDirection;\n\n if (view !== lastView.current) {\n slideDirection = views.indexOf(lastView.current) > views.indexOf(view) ? 'top' : 'bottom';\n } else if (lastDate.current !== currentDate) {\n slideDirection = dates.gt(currentDate, lastDate.current) ? 'left' : 'right';\n }\n\n useEffect(() => {\n lastDate.current = currentDate;\n lastView.current = view;\n });\n return slideDirection;\n};\n\n/**\n * @public\n */\nfunction Calendar(_ref) {\n let {\n id,\n autoFocus,\n bordered = true,\n views = VIEW_OPTIONS,\n tabIndex = 0,\n disabled,\n readOnly,\n className,\n value,\n defaultValue,\n onChange,\n currentDate: pCurrentDate,\n defaultCurrentDate,\n onCurrentDateChange,\n min = MIN,\n max = MAX,\n view,\n defaultView = views[0],\n onViewChange,\n onKeyDown,\n onNavigate,\n renderDay,\n messages,\n formats\n } = _ref,\n elementProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [currentValue, handleChange] = useUncontrolledProp(value, defaultValue, onChange);\n const [currentDate, handleCurrentDateChange] = useUncontrolledProp(pCurrentDate, defaultCurrentDate || currentValue || new Date(), onCurrentDateChange);\n const [currentView, handleViewChange] = useUncontrolledProp(view, defaultView, onViewChange);\n const localizer = useLocalizer(messages, formats);\n const ref = useRef(null);\n const viewId = useInstanceId(id, '_calendar');\n const labelId = useInstanceId(id, '_calendar_label');\n useAutoFocus(!!autoFocus, ref);\n const slideDirection = useViewState(views, currentView, currentDate);\n const [, focused] = useFocusManager(ref, {\n disabled\n }, {\n willHandle() {\n if (tabIndex == -1) return false;\n }\n\n });\n const lastValue = useRef(currentValue);\n useEffect(() => {\n const inValue = inRangeValue(currentValue, min, max);\n const last = lastValue.current;\n lastValue.current = currentValue;\n if (!dates.eq(inValue, dateOrNull(last), VIEW_UNIT[currentView])) maybeSetCurrentDate(inValue);\n });\n const isDisabled = disabled || readOnly;\n /**\n * Handlers\n */\n\n const handleViewChangeImpl = () => {\n navigate('UP');\n };\n\n const handleMoveBack = () => {\n navigate('LEFT');\n };\n\n const handleMoveForward = () => {\n navigate('RIGHT');\n };\n\n const handleDateChange = date => {\n if (views[0] === currentView) {\n maybeSetCurrentDate(date);\n notify(handleChange, [date]);\n focus();\n return;\n }\n\n navigate('DOWN', date);\n };\n\n const handleMoveToday = () => {\n let date = new Date();\n let firstView = views[0];\n notify(onChange, [date]);\n\n if (dates.inRange(date, min, max, firstView)) {\n focus();\n maybeSetCurrentDate(date);\n notify(handleViewChange, [firstView]);\n }\n };\n\n const handleKeyDown = e => {\n let ctrl = e.ctrlKey || e.metaKey;\n let key = e.key;\n let direction = ARROWS_TO_DIRECTION[key];\n let unit = VIEW_UNIT[currentView];\n\n if (key === 'Enter') {\n e.preventDefault();\n return handleDateChange(currentDate);\n }\n\n if (direction) {\n if (ctrl) {\n e.preventDefault();\n navigate(direction);\n } else {\n const isRTL = getComputedStyle(e.currentTarget).getPropertyValue('direction') === 'rtl';\n if (isRTL && direction in OPPOSITE_DIRECTION) direction = OPPOSITE_DIRECTION[direction];\n let nextDate = Calendar.move(currentDate, min, max, currentView, direction);\n\n if (!dates.eq(currentDate, nextDate, unit)) {\n e.preventDefault();\n if (dates.gt(nextDate, currentDate, currentView)) navigate('RIGHT', nextDate);else if (dates.lt(nextDate, currentDate, currentView)) navigate('LEFT', nextDate);else maybeSetCurrentDate(nextDate);\n }\n }\n }\n\n notify(onKeyDown, [e]);\n };\n\n function navigate(direction, date) {\n let nextView = currentView;\n let slideDir = direction === 'LEFT' || direction === 'UP' ? 'right' : 'left';\n if (direction === 'UP') nextView = views[views.indexOf(currentView) + 1] || nextView;\n if (direction === 'DOWN') nextView = views[views.indexOf(currentView) - 1] || nextView;\n if (!date) date = ['LEFT', 'RIGHT'].indexOf(direction) !== -1 ? nextDate(direction) : currentDate;\n\n if (dates.inRange(date, min, max, nextView)) {\n notify(onNavigate, [date, slideDir, nextView]); //this.focus()\n\n maybeSetCurrentDate(date);\n notify(handleViewChange, [nextView]);\n }\n }\n\n const focus = () => {\n var _ref$current;\n\n const node = (_ref$current = ref.current) == null ? void 0 : _ref$current.querySelector(FOCUSED_CELL_SELECTOR);\n node == null ? void 0 : node.focus();\n };\n\n const moveFocus = (node, hadFocus) => {\n let current = document.activeElement;\n\n if (hadFocus && (!current || !node.contains(current))) {\n node.focus();\n }\n };\n\n function maybeSetCurrentDate(date) {\n let inRangeDate = inRangeValue(date ? new Date(date) : currentDate, min, max);\n if (date === currentDate || dates.eq(inRangeDate, dateOrNull(currentDate), VIEW_UNIT[currentView])) return;\n notify(handleCurrentDateChange, [inRangeDate]);\n }\n\n function nextDate(direction) {\n let method = direction === 'LEFT' ? 'subtract' : 'add';\n let unit = currentView === 'month' ? currentView : 'year';\n let multi = MULTIPLIER[currentView] || 1;\n return dates[method](currentDate, 1 * multi, unit);\n }\n\n function getHeaderLabel() {\n switch (currentView) {\n case 'month':\n return localizer.formatDate(currentDate, 'header');\n\n case 'year':\n return localizer.formatDate(currentDate, 'year');\n\n case 'decade':\n return localizer.formatDate(dates.startOf(currentDate, 'decade'), 'decade');\n\n case 'century':\n return localizer.formatDate(dates.startOf(currentDate, 'century'), 'century');\n }\n }\n\n let View = VIEW[currentView];\n let todayNotInRange = !dates.inRange(new Date(), min, max, currentView);\n let key = currentView + '_' + dates[currentView](currentDate); // let elementProps = Props.pickElementProps(this),\n // let viewProps = pick(uncontrolledProps, View)\n\n const prevDisabled = isDisabled || !dates.inRange(nextDate('LEFT'), min, max, currentView);\n const nextDisabled = isDisabled || !dates.inRange(nextDate('RIGHT'), min, max, currentView);\n return /*#__PURE__*/React.createElement(Widget, _extends({}, elementProps, {\n role: \"group\",\n ref: ref,\n focused: focused,\n disabled: disabled,\n readOnly: readOnly,\n tabIndex: tabIndex,\n className: cn(className, 'rw-calendar', bordered && 'rw-calendar-contained')\n }), /*#__PURE__*/React.createElement(CalendarHeader, {\n label: getHeaderLabel(),\n labelId: labelId,\n localizer: localizer,\n upDisabled: isDisabled || currentView === last(views),\n prevDisabled: prevDisabled,\n todayDisabled: isDisabled || todayNotInRange,\n nextDisabled: nextDisabled,\n onViewChange: handleViewChangeImpl,\n onMoveLeft: handleMoveBack,\n onMoveRight: handleMoveForward,\n onMoveToday: handleMoveToday\n }), /*#__PURE__*/React.createElement(Calendar.Transition, {\n direction: slideDirection,\n onTransitionEnd: moveFocus\n }, /*#__PURE__*/React.createElement(View, {\n key: key,\n min: min,\n max: max,\n id: viewId,\n value: currentValue,\n localizer: localizer,\n disabled: isDisabled,\n focusedItem: currentDate,\n onChange: handleDateChange,\n onKeyDown: handleKeyDown,\n \"aria-labelledby\": labelId,\n renderDay: renderDay\n })));\n}\n\nfunction dateOrNull(dt) {\n if (dt && !isNaN(dt.getTime())) return dt;\n return null;\n}\n\nCalendar.displayName = 'Calendar';\nCalendar.propTypes = propTypes; // Calendar.defaultProps = {\n// min: new Date(1900, 0, 1),\n// max: new Date(2099, 11, 31),\n// views: VIEW_OPTIONS,\n// tabIndex: '0',\n// }\n\nCalendar.Transition = SlideTransitionGroup;\n\nCalendar.move = (date, min, max, view, direction) => {\n let isMonth = view === 'month';\n let isUpOrDown = direction === 'UP' || direction === 'DOWN';\n let rangeUnit = view && VIEW_UNIT[view];\n let addUnit = isMonth && isUpOrDown ? 'week' : VIEW_UNIT[view];\n let amount = isMonth || !isUpOrDown ? 1 : 4;\n let newDate;\n if (direction === 'UP' || direction === 'LEFT') amount *= -1;\n newDate = dates.add(date, amount, addUnit);\n return dates.inRange(newDate, min, max, rangeUnit) ? newDate : date;\n};\n\nexport default Calendar;","const _excluded = [\"className\", \"disabled\", \"readOnly\", \"value\", \"tabIndex\", \"type\", \"component\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nconst Input = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n className,\n disabled,\n readOnly,\n value,\n tabIndex,\n type = 'text',\n component: Component = 'input'\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n type: type,\n tabIndex: tabIndex || 0,\n autoComplete: \"off\",\n disabled: disabled,\n readOnly: readOnly,\n \"aria-disabled\": disabled,\n \"aria-readonly\": readOnly,\n value: value == null ? '' : value,\n className: cn(className, 'rw-input')\n }));\n});\nInput.displayName = 'Input';\nInput.propTypes = {\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n value: PropTypes.string,\n type: PropTypes.string,\n tabIndex: PropTypes.number,\n component: PropTypes.any\n};\nexport default Input;","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","/* eslint-disable react-hooks/exhaustive-deps */\nimport querySelectorAll from 'dom-helpers/querySelectorAll';\nimport React, { useCallback, useContext, useLayoutEffect, useMemo, useState, useRef } from 'react';\nexport const FocusListContext = /*#__PURE__*/React.createContext(null);\nconst defaultOpts = {\n behavior: 'stop'\n};\nexport function useListOption(dataItem) {\n const ctx = useContext(FocusListContext);\n const prevElement = useRef(null); // this is a bit convoluted because we want to use a ref object, a callback ref\n // causes an extra render which is fine except that it means the list hook for\n // anchor items fires before elements are processed\n\n const ref = useRef(null);\n useLayoutEffect(() => () => {\n ctx == null ? void 0 : ctx.map.delete(ref.current);\n }, []);\n useLayoutEffect(() => {\n if (prevElement.current !== ref.current) {\n ctx == null ? void 0 : ctx.map.delete(prevElement.current);\n }\n\n prevElement.current = ref.current;\n\n if (ref.current && (ctx == null ? void 0 : ctx.map.get(ref.current)) !== dataItem) {\n ctx == null ? void 0 : ctx.map.set(ref.current, dataItem);\n }\n });\n const focused = dataItem === (ctx == null ? void 0 : ctx.focusedItem);\n return [ref, focused, focused ? ctx == null ? void 0 : ctx.activeId : undefined];\n}\nexport const useFocusList = ({\n scope: listRef,\n anchorItem,\n focusFirstItem: _focusFirstItem = false,\n scopeSelector: _scopeSelector = '',\n activeId\n}) => {\n const map = useMemo(() => new WeakMap(), []);\n const [focusedItem, setFocusedItem] = useState();\n const itemSelector = `${_scopeSelector} [data-rw-focusable]`.trim();\n\n const get = () => {\n const items = querySelectorAll(listRef.current, itemSelector);\n return [items, items.find(e => e.dataset.rwFocused === '')];\n };\n\n const list = useMemo(() => {\n return {\n size() {\n const [items] = get();\n return items.length;\n },\n\n get,\n toDataItem: el => map.get(el),\n\n first() {\n const [[first]] = get();\n return first;\n },\n\n focus(el) {\n if (!el || map.has(el)) setFocusedItem(el ? map.get(el) : undefined);\n },\n\n last() {\n const [items] = get();\n return items[items.length - 1];\n },\n\n next({\n behavior\n } = defaultOpts) {\n const [items, focusedItem] = get();\n let nextIdx = items.indexOf(focusedItem) + 1;\n\n if (nextIdx >= items.length) {\n if (behavior === 'loop') return items[0];\n if (behavior === 'clear') return undefined;\n return focusedItem;\n }\n\n return items[nextIdx];\n },\n\n prev({\n behavior\n } = defaultOpts) {\n const [items, focusedItem] = get();\n let nextIdx = Math.max(0, items.indexOf(focusedItem)) - 1;\n\n if (nextIdx < 0) {\n if (behavior === 'loop') return items[items.length - 1];\n if (behavior === 'clear') return undefined;\n return focusedItem;\n }\n\n return items[nextIdx];\n }\n\n };\n }, []);\n useLayoutEffect(() => {\n if (!anchorItem) {\n list.focus(null);\n return;\n }\n\n const element = get()[0].find(el => list.toDataItem(el) === anchorItem);\n list.focus(element);\n }, [anchorItem]);\n useLayoutEffect(() => {\n if (!listRef.current) return;\n const [, focusedElement] = get();\n const hasItem = focusedElement != null;\n\n if (!hasItem && _focusFirstItem || hasItem && !listRef.current.contains(focusedElement)) {\n if (_focusFirstItem) list.focus(list.first());else list.focus(null);\n }\n });\n const context = useMemo(() => ({\n map,\n focusedItem,\n activeId\n }), [focusedItem, activeId]);\n list.context = context;\n list.getFocused = useCallback(() => focusedItem, [focusedItem]);\n\n list.hasFocused = () => focusedItem !== undefined;\n\n return list;\n};","const _excluded = [\"className\", \"children\", \"dataItem\", \"selected\", \"disabled\", \"onSelect\", \"searchTerm\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useListOption } from './FocusListContext';\nconst propTypes = {\n activeId: PropTypes.string,\n dataItem: PropTypes.any,\n selected: PropTypes.bool.isRequired,\n onSelect: PropTypes.func.isRequired,\n component: PropTypes.any\n};\n\nfunction ListOption(_ref) {\n let {\n className,\n children,\n dataItem,\n selected,\n disabled,\n onSelect\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [ref, focused, id] = useListOption(dataItem);\n\n const handleSelect = event => {\n if (onSelect && !disabled) onSelect(dataItem, event);\n };\n\n let classes = {\n 'rw-state-focus': focused,\n 'rw-state-selected': selected,\n 'rw-state-disabled': disabled\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n id: id,\n ref: ref,\n role: \"option\",\n \"data-rw-option\": \"\",\n \"data-rw-focused\": focused ? '' : undefined,\n \"data-rw-focusable\": !disabled ? '' : undefined,\n tabIndex: -1,\n \"aria-selected\": !!selected,\n className: cn('rw-list-option', className, classes),\n onClick: handleSelect\n }, props), children);\n} // @ts-ignore\n\n\nListOption.propTypes = propTypes;\nexport default ListOption;","import cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nconst propTypes = {\n className: PropTypes.string,\n component: PropTypes.string\n};\n\nfunction ListOptionGroup({\n children,\n className,\n component = 'div'\n}) {\n let Tag = component;\n return /*#__PURE__*/React.createElement(Tag, {\n tabIndex: \"-1\",\n role: \"separator\",\n className: cn(className, 'rw-list-optgroup')\n }, children);\n}\n\nListOptionGroup.propTypes = propTypes;\nexport default ListOptionGroup;","import * as PropTypes from 'prop-types';\nexport const elementType = PropTypes.elementType;\nexport let disabled = Object.assign((...args) => PropTypes.bool(...args), {\n acceptsArray: PropTypes.oneOfType([PropTypes.bool, PropTypes.array])\n});\nexport const accessor = PropTypes.oneOfType([PropTypes.string, PropTypes.func]);\nexport const message = PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.func]);","import { useRef, useEffect, useDebugValue } from 'react';\nimport useMounted from './useMounted';\n\nfunction useCustomEffect(effect, dependencies, isEqualOrOptions) {\n var isMounted = useMounted();\n\n var _ref = typeof isEqualOrOptions === 'function' ? {\n isEqual: isEqualOrOptions\n } : isEqualOrOptions,\n isEqual = _ref.isEqual,\n _ref$effectHook = _ref.effectHook,\n effectHook = _ref$effectHook === void 0 ? useEffect : _ref$effectHook;\n\n var dependenciesRef = useRef();\n dependenciesRef.current = dependencies;\n var cleanupRef = useRef(null);\n effectHook(function () {\n // If the ref the is `null` it's either the first effect or the last effect\n // ran and was cleared, meaning _this_ update should run, b/c the equality\n // check failed on in the cleanup of the last effect.\n if (cleanupRef.current === null) {\n var cleanup = effect();\n\n cleanupRef.current = function () {\n if (isMounted() && isEqual(dependenciesRef.current, dependencies)) {\n return;\n }\n\n cleanupRef.current = null;\n if (cleanup) cleanup();\n };\n }\n\n return cleanupRef.current;\n });\n useDebugValue(effect);\n}\n\nexport default useCustomEffect;","import { useRef } from 'react';\nimport useStableMemo from './useStableMemo';\nimport useWillUnmount from './useWillUnmount';\n/**\n * An _immediate_ effect that runs an effect callback when its dependency array\n * changes. This is helpful for updates should must run during render, most\n * commonly state derived from props; a more ergonomic version of https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops\n *\n * ```ts\n * function Example({ value }) {\n * const [intermediaryValue, setValue] = useState(value);\n *\n * useUpdateImmediateEffect(() => {\n * setValue(value)\n * }, [value])\n * ```\n *\n * @category effects\n */\n\nfunction useUpdateImmediateEffect(effect, deps) {\n var firstRef = useRef(true);\n var tearDown = useRef();\n useWillUnmount(function () {\n if (tearDown.current) tearDown.current();\n });\n useStableMemo(function () {\n if (firstRef.current) {\n firstRef.current = false;\n return;\n }\n\n if (tearDown.current) tearDown.current();\n tearDown.current = effect();\n }, deps);\n}\n\nexport default useUpdateImmediateEffect;","import { useRef } from 'react';\n\nfunction isEqual(a, b) {\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Identical to `useMemo` _except_ that it provides a semantic guarantee that\n * values will not be invalidated unless the dependencies change. This is unlike\n * the built in `useMemo` which may discard memoized values for performance reasons.\n *\n * @param factory A function that returns a value to be memoized\n * @param deps A dependency array\n */\nexport default function useStableMemo(factory, deps) {\n var isValid = true;\n var valueRef = useRef(); // initial hook call\n\n if (!valueRef.current) {\n valueRef.current = {\n deps: deps,\n result: factory()\n }; // subsequent calls\n } else {\n isValid = !!(deps && valueRef.current.deps && isEqual(deps, valueRef.current.deps));\n }\n\n var cache = isValid ? valueRef.current : {\n deps: deps,\n result: factory()\n }; // must update immediately so any sync renders here don't cause an infinite loop\n\n valueRef.current = cache;\n return cache.result;\n}","import useUpdateImmediateEffect from './useUpdateImmediateEffect';\nexport default useUpdateImmediateEffect;","import useCustomEffect from './useCustomEffect';\nimport { dequal } from 'dequal';\nimport useImmediateUpdateEffect from './useImmediateUpdateEffect';\nimport useEventCallback from './useEventCallback';\nimport { useState } from 'react';\n\nfunction isDepsEqual(_ref, _ref2) {\n var nextElement = _ref[0],\n nextConfig = _ref[1];\n var prevElement = _ref2[0],\n prevConfig = _ref2[1];\n return nextElement === prevElement && dequal(nextConfig, prevConfig);\n}\n/**\n * Observe mutations on a DOM node or tree of DOM nodes.\n * Depends on the `MutationObserver` api.\n *\n * ```tsx\n * const [element, attachRef] = useCallbackRef(null);\n *\n * useMutationObserver(element, { subtree: true }, (records) => {\n *\n * });\n *\n * return (\n *
    \n * )\n * ```\n *\n * @param element The DOM element to observe\n * @param config The observer configuration\n * @param callback A callback fired when a mutation occurs\n */\n\n\nfunction useMutationObserver(element, config, callback) {\n var _useState = useState(null),\n records = _useState[0],\n setRecords = _useState[1];\n\n var handler = useEventCallback(callback || setRecords);\n useCustomEffect(function () {\n if (!element) return; // The behavior around reusing mutation observers is confusing\n // observing again _should_ disable the last listener but doesn't\n // seem to always be the case, maybe just in JSDOM? In any case the cost\n // to redeclaring it is gonna be fairly low anyway, so make it simple\n\n var observer = new MutationObserver(handler);\n observer.observe(element, config);\n return function () {\n observer.disconnect();\n };\n }, [element, config], {\n isEqual: isDepsEqual,\n // Intentionally done in render, otherwise observer will miss any\n // changes made to the DOM during this update\n effectHook: useImmediateUpdateEffect\n });\n return callback ? void 0 : records || [];\n}\n\nexport default useMutationObserver;","const _excluded = [\"multiple\", \"data\", \"value\", \"onChange\", \"accessors\", \"className\", \"messages\", \"disabled\", \"renderItem\", \"renderGroup\", \"searchTerm\", \"groupBy\", \"elementRef\", \"optionComponent\", \"renderList\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useImperativeHandle, useMemo } from 'react';\nimport ListOption from './ListOption';\nimport ListOptionGroup from './ListOptionGroup';\nimport { useMessagesWithDefaults } from './messages'; // import { WidgetHTMLProps } from './shared'\n\nimport * as CustomPropTypes from './PropTypes';\nimport { groupBySortedKeys, makeArray, toItemArray } from './_';\nimport { useInstanceId } from './WidgetHelpers';\nimport useMutationObserver from '@restart/hooks/useMutationObserver';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nconst whitelist = ['style', 'className', 'role', 'id', 'autocomplete', 'size', 'tabIndex', 'maxLength', 'name'];\nconst whitelistRegex = [/^aria-/, /^data-/, /^on[A-Z]\\w+/];\n\nfunction pickElementProps(props) {\n const result = {};\n Object.keys(props).forEach(key => {\n if (whitelist.indexOf(key) !== -1 || whitelistRegex.some(r => !!key.match(r))) result[key] = props[key];\n });\n return result;\n}\n\nconst propTypes = {\n data: PropTypes.array,\n dataKey: CustomPropTypes.accessor,\n textField: CustomPropTypes.accessor,\n onSelect: PropTypes.func,\n onMove: PropTypes.func,\n onHoverOption: PropTypes.func,\n optionComponent: PropTypes.elementType,\n renderItem: PropTypes.func,\n renderGroup: PropTypes.func,\n focusedItem: PropTypes.any,\n selectedItem: PropTypes.any,\n searchTerm: PropTypes.string,\n disabled: CustomPropTypes.disabled.acceptsArray,\n messages: PropTypes.shape({\n emptyList: PropTypes.func.isRequired\n })\n};\nexport const useScrollFocusedIntoView = (element, observeChanges = false) => {\n const scrollIntoView = useCallback(() => {\n if (!element) return;\n let selectedItem = element.querySelector('[data-rw-focused]');\n\n if (selectedItem && selectedItem.scrollIntoView) {\n selectedItem.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }, [element]);\n useMutationObserver(observeChanges ? element : null, {\n subtree: true,\n attributes: true,\n attributeFilter: ['data-rw-focused']\n }, scrollIntoView);\n return scrollIntoView;\n};\nexport function useHandleSelect(multiple, dataItems, onChange) {\n return (dataItem, event) => {\n if (multiple === false) {\n onChange(dataItem, {\n dataItem,\n lastValue: dataItems[0],\n originalEvent: event\n });\n return;\n }\n\n const checked = dataItems.includes(dataItem);\n onChange(checked ? dataItems.filter(d => d !== dataItem) : [...dataItems, dataItem], {\n dataItem,\n lastValue: dataItems,\n action: checked ? 'remove' : 'insert',\n originalEvent: event\n });\n };\n}\nconst List = /*#__PURE__*/React.forwardRef(function List(_ref, outerRef) {\n var _elementProps$role;\n\n let {\n multiple = false,\n data = [],\n value,\n onChange,\n accessors,\n className,\n messages,\n disabled,\n renderItem,\n renderGroup,\n searchTerm,\n groupBy,\n elementRef,\n optionComponent: Option = ListOption,\n renderList\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const id = useInstanceId();\n const dataItems = makeArray(value, multiple);\n const groupedData = useMemo(() => groupBy ? groupBySortedKeys(groupBy, data) : undefined, [data, groupBy]);\n const [element, ref] = useCallbackRef();\n const disabledItems = toItemArray(disabled);\n const {\n emptyList\n } = useMessagesWithDefaults(messages);\n const divRef = useMergedRefs(ref, elementRef);\n const handleSelect = useHandleSelect(multiple, dataItems, onChange);\n const scrollIntoView = useScrollFocusedIntoView(element, true);\n let elementProps = pickElementProps(props);\n useImperativeHandle(outerRef, () => ({\n scrollIntoView\n }), [scrollIntoView]);\n\n function renderOption(item, idx) {\n const textValue = accessors.text(item);\n const itemIsDisabled = disabledItems.includes(item);\n const itemIsSelected = dataItems.includes(item);\n return /*#__PURE__*/React.createElement(Option, {\n dataItem: item,\n key: `item_${idx}`,\n searchTerm: searchTerm,\n onSelect: handleSelect,\n disabled: itemIsDisabled,\n selected: itemIsSelected\n }, renderItem ? renderItem({\n item,\n searchTerm,\n index: idx,\n text: textValue,\n // TODO: probably remove\n value: accessors.value(item),\n disabled: itemIsDisabled\n }) : textValue);\n }\n\n const items = groupedData ? groupedData.map(([group, items], idx) => /*#__PURE__*/React.createElement(\"div\", {\n role: \"group\",\n key: `group_${idx}`\n }, /*#__PURE__*/React.createElement(ListOptionGroup, null, renderGroup ? renderGroup({\n group\n }) : group), items.map(renderOption))) : data.map(renderOption);\n const rootProps = Object.assign({\n id,\n tabIndex: 0,\n ref: divRef\n }, elementProps, {\n 'aria-multiselectable': !!multiple,\n className: cn(className, 'rw-list'),\n role: (_elementProps$role = elementProps.role) != null ? _elementProps$role : 'listbox',\n children: React.Children.count(items) ? items : /*#__PURE__*/React.createElement(\"div\", {\n className: \"rw-list-empty\"\n }, emptyList())\n });\n return renderList ? renderList(rootProps) : /*#__PURE__*/React.createElement(\"div\", rootProps);\n});\nList.displayName = 'List';\nList.propTypes = propTypes;\nexport default List;","import isDocument from './isDocument';\nexport default function isWindow(node) {\n if ('window' in node && node.window === node) return node;\n if (isDocument(node)) return node.defaultView || false;\n return false;\n}","export default function isDocument(element) {\n return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;\n}","import isWindow from './isWindow';\nexport default function getscrollAccessor(offset) {\n var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';\n\n function scrollAccessor(node, val) {\n var win = isWindow(node);\n\n if (val === undefined) {\n return win ? win[offset] : node[prop];\n }\n\n if (win) {\n win.scrollTo(win[offset], val);\n } else {\n node[prop] = val;\n }\n }\n\n return scrollAccessor;\n}","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll left position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageXOffset');","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll top position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageYOffset');","import getWindow from './isWindow';\nimport offset from './offset';\n/**\n * Returns the height of a given element.\n * \n * @param node the element\n * @param client whether to use `clientHeight` if possible\n */\n\nexport default function height(node, client) {\n var win = getWindow(node);\n return win ? win.innerHeight : client ? node.clientHeight : offset(node).height;\n}","import contains from './contains';\nimport ownerDocument from './ownerDocument';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n/**\n * Returns the offset of a given element, including top and left positions, width and height.\n * \n * @param node the element\n */\n\nexport default function offset(node) {\n var doc = ownerDocument(node);\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node\n\n if (!docElem || !contains(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();\n box = {\n top: box.top + scrollTop(docElem) - (docElem.clientTop || 0),\n left: box.left + scrollLeft(docElem) - (docElem.clientLeft || 0),\n width: box.width,\n height: box.height\n };\n return box;\n}","const _excluded = [\"children\", \"className\", \"dropUp\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport css from 'dom-helpers/css';\nimport getHeight from 'dom-helpers/height';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Transition, { ENTERING, EXITED, EXITING } from 'react-transition-group/Transition';\nconst transitionClasses = {\n [ENTERING]: 'rw-slide-transition-entering',\n [EXITING]: 'rw-slide-transition-exiting',\n [EXITED]: 'rw-slide-transition-exited'\n};\n\nclass SlideDownTransition extends React.Component {\n constructor(...args) {\n super(...args);\n\n this.setContainerHeight = elem => {\n elem.style.height = this.getHeight(elem) + 'px';\n };\n\n this.clearContainerHeight = elem => {\n elem.style.height = '';\n };\n\n this.handleEntered = elem => {\n this.clearContainerHeight(elem);\n if (this.props.onEntered) this.props.onEntered();\n };\n\n this.handleEntering = () => {\n if (this.props.onEntering) this.props.onEntering();\n };\n\n this.handleExit = elem => {\n this.setContainerHeight(elem);\n if (this.props.onExit) this.props.onExit();\n };\n\n this.handleExited = elem => {\n this.clearContainerHeight(elem);\n if (this.props.onExited) this.props.onExited();\n };\n\n this.handleTransitionEnd = (el, done) => {\n transitionEnd(el.firstChild, done);\n };\n }\n\n getHeight(container) {\n let content = container.firstChild;\n let margin = parseInt(css(content, 'margin-top'), 10) + parseInt(css(content, 'margin-bottom'), 10);\n let old = container.style.display;\n let height;\n container.style.display = 'block';\n height = (getHeight(content) || 0) + (isNaN(margin) ? 0 : margin);\n container.style.display = old;\n return height;\n }\n\n render() {\n const _this$props = this.props,\n {\n children,\n className,\n dropUp\n } = _this$props,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n appear: true,\n in: this.props.in,\n onEnter: this.setContainerHeight,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered,\n onExit: this.handleExit,\n onExited: this.handleExited,\n addEndListener: this.handleTransitionEnd,\n timeout: undefined\n /*hack*/\n\n }), (status, innerProps) => /*#__PURE__*/React.createElement(\"div\", _extends({}, innerProps, {\n className: cn(className, dropUp && 'rw-dropup', transitionClasses[status])\n }), /*#__PURE__*/React.cloneElement(children, {\n className: cn('rw-slide-transition', children.props.className)\n })));\n }\n\n}\n\nSlideDownTransition.propTypes = {\n in: PropTypes.bool.isRequired,\n innerClassName: PropTypes.string,\n dropUp: PropTypes.bool,\n onExit: PropTypes.func,\n onExited: PropTypes.func,\n onEntering: PropTypes.func,\n onEntered: PropTypes.func\n};\nexport default SlideDownTransition;","const _excluded = [\"id\", \"role\", \"dropUp\", \"className\", \"children\", \"open\", \"transition\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport React from 'react';\nimport SlideDownTransition from './SlideDownTransition';\nexport const StaticContainer = /*#__PURE__*/React.memo(({\n children\n}) => children, (_, {\n shouldUpdate\n}) => !shouldUpdate);\nconst Popup = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n id,\n role,\n dropUp,\n className,\n children,\n open = false,\n transition = SlideDownTransition\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const Transition = transition;\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n in: open,\n dropUp: dropUp,\n timeout: undefined\n /**hack*/\n ,\n className: cn('rw-popup-container', className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: \"rw-popup\",\n ref: ref,\n role: role\n }, /*#__PURE__*/React.createElement(StaticContainer, {\n shouldUpdate: open\n }, children)));\n});\nPopup.displayName = 'Popup';\nexport default Popup;","const _excluded = [\"className\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport React from 'react';\nimport Button from './Button';\n\nfunction InputAddon(_ref) {\n let {\n className\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Button, _extends({}, props, {\n className: cn(className, 'rw-input-addon rw-picker-btn')\n }));\n}\n\nexport default InputAddon;","const _excluded = [\"className\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport React from 'react';\n\nfunction WidgetPicker(_ref) {\n let {\n className\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: cn(className, 'rw-widget-picker', 'rw-widget-container')\n }));\n}\n\nexport default WidgetPicker;","import { useEffect } from 'react';\n/**\n * Do a \"hard\" set on the aria, so that it's always announced\n * even if the id hasn't changed, this saves us from having to have a different id\n * per item.\n */\n\nexport const setActiveDescendant = (ref, activeId) => {\n if (!ref) return;\n ref.removeAttribute('aria-activedescendant');\n if (activeId) ref.setAttribute('aria-activedescendant', activeId);\n};\nexport const useActiveDescendant = (ref, id, visible, deps) => {\n useEffect(() => {\n setActiveDescendant(ref.current, visible ? id : ''); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, id, visible, ...deps]);\n};","import { useMemo } from 'react';\nexport const dataValue = (dataItem, field) => {\n if (typeof field === 'function') return field(dataItem);\n if (dataItem == null) return dataItem;\n if (typeof field === 'string' && typeof dataItem === 'object' && field in dataItem) return dataItem[field];\n return dataItem;\n};\nexport const dataText = (dataItem, textField) => {\n const value = dataValue(dataItem, textField);\n return value == null ? '' : String(value);\n};\n/**\n * I don't know that the shallow equal makes sense here but am too afraid to\n * remove it.\n */\n\nexport function valueMatcher(a, b, dataKey) {\n return dataValue(a, dataKey) === dataValue(b, dataKey);\n}\nexport function dataIndexOf(data, value, dataKey) {\n const valueDataKey = dataValue(value, dataKey);\n let idx = -1;\n\n while (++idx < data.length) {\n const datum = data[idx];\n if (datum === value || dataValue(datum, dataKey) === valueDataKey) return idx;\n }\n\n return -1;\n}\nexport function dataItem(data, value, dataKey) {\n const idx = dataIndexOf(data, value, dataKey); // This isn't strictly safe, but we want to allow items that aren't in the list\n\n return idx !== -1 ? data[idx] : value;\n}\nexport const useAccessors = (textField, dataKey) => {\n return useMemo(() => ({\n text: item => dataText(item, textField),\n value: item => dataValue(item, dataKey),\n indexOf: (data, value) => dataIndexOf(data, value, dataKey),\n matches: (a, b) => valueMatcher(a, b, dataKey),\n findOrSelf: (data, value) => dataItem(data, value, dataKey),\n includes: (data, value) => dataIndexOf(data, value, dataKey) !== -1\n }), [textField, dataKey]);\n};","import { dataText } from './Accessors';\nimport { useMemo } from 'react';\nexport const presets = {\n eq: (a, b) => a === b,\n contains: (a, b) => a.indexOf(b) !== -1,\n startsWith: (a, b) => a.lastIndexOf(b, 0) === 0\n};\n\nfunction normalizeFilter(filter, textField) {\n if (filter === false) return null;\n if (typeof filter === 'function') return filter;\n const filterPreset = presets[filter === true ? 'startsWith' : filter || 'eq'];\n return (item, searchTerm) => {\n let textValue = dataText(item, textField);\n return filterPreset(textValue.toLowerCase(), searchTerm.toLowerCase());\n };\n}\n\nexport function useFilteredData(data, filterer, searchTerm = '', textAccessor) {\n return useMemo(() => {\n const filter = normalizeFilter(filterer, textAccessor);\n if (!filter || !searchTerm.trim()) return data;\n return data.filter((item, idx) => filter(item, searchTerm, idx));\n }, [data, filterer, searchTerm, textAccessor]);\n}","import { notify } from './WidgetHelpers';\nexport default function useDropdownToggle(isOpen, onToggle) {\n function open() {\n if (!isOpen) notify(onToggle, [true]);\n }\n\n function close() {\n if (isOpen) notify(onToggle, [false]);\n }\n\n function toggle() {\n if (isOpen) close();else open();\n }\n\n toggle.open = open;\n toggle.close = close;\n return toggle;\n}","const _excluded = [\"id\", \"className\", \"containerClassName\", \"placeholder\", \"autoFocus\", \"textField\", \"dataKey\", \"autoSelectMatches\", \"focusFirstItem\", \"value\", \"defaultValue\", \"onChange\", \"open\", \"defaultOpen\", \"onToggle\", \"filter\", \"busy\", \"disabled\", \"readOnly\", \"selectIcon\", \"hideCaret\", \"hideEmptyPopup\", \"busySpinner\", \"dropUp\", \"tabIndex\", \"popupTransition\", \"name\", \"onSelect\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"inputProps\", \"listProps\", \"popupProps\", \"groupBy\", \"renderListItem\", \"renderListGroup\", \"optionComponent\", \"listComponent\", \"popupComponent\", \"data\", \"messages\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport cn from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport { caretDown } from './Icon';\nimport Input from './Input';\nimport List from './List';\nimport { FocusListContext, useFocusList } from './FocusListContext';\nimport BasePopup from './Popup';\nimport InputAddon from './InputAddon';\nimport Widget from './Widget';\nimport WidgetPicker from './WidgetPicker';\nimport { useMessagesWithDefaults } from './messages';\nimport { useActiveDescendant } from './A11y';\nimport * as CustomPropTypes from './PropTypes';\nimport { useAccessors } from './Accessors';\nimport { useFilteredData } from './Filter';\nimport useDropdownToggle from './useDropdownToggle';\nimport useFocusManager from './useFocusManager';\nimport { notify, useFirstFocusedRender, useInstanceId } from './WidgetHelpers';\nimport { Spinner } from './Icon';\n\nfunction indexOf(data, searchTerm, text) {\n if (!searchTerm.trim()) return -1;\n\n for (let idx = 0; idx < data.length; idx++) if (text(data[idx]).toLowerCase() === searchTerm) return idx;\n\n return -1;\n}\n\nlet propTypes = {\n value: PropTypes.any,\n onChange: PropTypes.func,\n open: PropTypes.bool,\n onToggle: PropTypes.func,\n renderListItem: PropTypes.func,\n listComponent: PropTypes.elementType,\n renderListGroup: PropTypes.func,\n groupBy: CustomPropTypes.accessor,\n data: PropTypes.array,\n dataKey: CustomPropTypes.accessor,\n textField: CustomPropTypes.accessor,\n name: PropTypes.string,\n\n /** Do not show the auto complete list when it returns no results. */\n hideEmptyPopup: PropTypes.bool,\n\n /** Hide the combobox dropdown indicator. */\n hideCaret: PropTypes.bool,\n\n /**\n *\n * @type {(dataItem: ?any, metadata: { originalEvent: SyntheticEvent }) => void}\n */\n onSelect: PropTypes.func,\n autoFocus: PropTypes.bool,\n disabled: CustomPropTypes.disabled.acceptsArray,\n readOnly: CustomPropTypes.disabled,\n busy: PropTypes.bool,\n\n /** Specify the element used to render the select (down arrow) icon. */\n selectIcon: PropTypes.node,\n\n /** Specify the element used to render the busy indicator */\n busySpinner: PropTypes.node,\n dropUp: PropTypes.bool,\n popupTransition: PropTypes.elementType,\n placeholder: PropTypes.string,\n\n /** Adds a css class to the input container element. */\n containerClassName: PropTypes.string,\n inputProps: PropTypes.object,\n listProps: PropTypes.object,\n messages: PropTypes.shape({\n openCombobox: CustomPropTypes.message,\n emptyList: CustomPropTypes.message,\n emptyFilter: CustomPropTypes.message\n })\n};\n\n/**\n * ---\n * shortcuts:\n * - { key: alt + down arrow, label: open combobox }\n * - { key: alt + up arrow, label: close combobox }\n * - { key: down arrow, label: move focus to next item }\n * - { key: up arrow, label: move focus to previous item }\n * - { key: home, label: move focus to first item }\n * - { key: end, label: move focus to last item }\n * - { key: enter, label: select focused item }\n * - { key: any key, label: search list for item starting with key }\n * ---\n *\n * Select an item from the list, or input a custom value. The Combobox can also make suggestions as you type.\n\n * @public\n */\nconst ComboboxImpl = /*#__PURE__*/React.forwardRef(function Combobox(_ref, outerRef) {\n let {\n id,\n className,\n containerClassName,\n placeholder,\n autoFocus,\n textField,\n dataKey,\n autoSelectMatches,\n focusFirstItem = false,\n value,\n defaultValue = '',\n onChange,\n open,\n defaultOpen = false,\n onToggle,\n filter = true,\n busy,\n disabled,\n readOnly,\n selectIcon = caretDown,\n hideCaret,\n hideEmptyPopup,\n busySpinner,\n dropUp,\n tabIndex,\n popupTransition,\n name,\n onSelect,\n onKeyDown,\n onBlur,\n onFocus,\n inputProps,\n listProps,\n popupProps,\n groupBy,\n renderListItem,\n renderListGroup,\n optionComponent,\n listComponent: ListComponent = List,\n popupComponent: Popup = BasePopup,\n data: rawData = [],\n messages: userMessages\n } = _ref,\n elementProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n let [currentValue, handleChange] = useUncontrolledProp(value, defaultValue, onChange);\n const [currentOpen, handleOpen] = useUncontrolledProp(open, defaultOpen, onToggle);\n const ref = useRef(null);\n const inputRef = useRef(null);\n const listRef = useRef(null);\n const [suggestion, setSuggestion] = useState(null);\n const shouldFilter = useRef(false);\n const inputId = useInstanceId(id, '_input');\n const listId = useInstanceId(id, '_listbox');\n const activeId = useInstanceId(id, '_listbox_active_option');\n const accessors = useAccessors(textField, dataKey);\n const messages = useMessagesWithDefaults(userMessages);\n const toggle = useDropdownToggle(currentOpen, handleOpen);\n const isDisabled = disabled === true;\n const isReadOnly = !!readOnly;\n const data = useFilteredData(rawData, filter, shouldFilter.current ? accessors.text(currentValue) : void 0, accessors.text);\n const selectedItem = useMemo(() => data[accessors.indexOf(data, currentValue)], [data, currentValue, accessors]);\n const list = useFocusList({\n activeId,\n scope: ref,\n focusFirstItem,\n anchorItem: currentOpen ? selectedItem : undefined\n });\n const [focusEvents, focused] = useFocusManager(ref, {\n disabled: isDisabled,\n onBlur,\n onFocus\n }, {\n didHandle(focused) {\n if (!focused) {\n shouldFilter.current = false;\n toggle.close();\n setSuggestion(null);\n list.focus(undefined);\n } else {\n focus({\n preventScroll: true\n });\n }\n }\n\n });\n useActiveDescendant(ref, activeId, currentOpen, [list.getFocused()]);\n /**\n * Handlers\n */\n\n const handleClick = e => {\n if (readOnly || isDisabled) return; // prevents double clicks when in a
    \n )\n}\n\nconst _countRune = (text: string) => {\n let count = text.split('').reduce((r, x, i) => {\n if (x < ' ') {\n return r\n }\n if (x >= ' ' && x <= '~') {\n return r + 1\n }\n return r + 2\n }, 0)\n return count\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"InitConsts_root__-U0pq\"};","import { useEffect, useRef, useState } from 'react'\nimport styles from './InitConsts.module.css'\nimport { CONSTS, CalcFontSizeScaleScreenWidth, InitCONSTS } from './utils'\n\nimport CSS from 'csstype'\n\ntype Props = {\n windowWidth: number\n isMobile: boolean\n isInitConsts: boolean\n setIsInitConsts: any\n}\n\nexport default (props: Props) => {\n const { windowWidth, isMobile, isInitConsts, setIsInitConsts } = props\n const ref: React.MutableRefObject = useRef(null)\n let { fontSize, scale, screenWidth } = CalcFontSizeScaleScreenWidth(windowWidth, isMobile)\n\n const [style, setStyle] = useState({ fontSize: `${fontSize}px` })\n\n useEffect(() => {\n console.log('InitConsts.useEffect: current:', ref.current, 'isInitConsts:', isInitConsts, 'CONSTS.IS_INIT', CONSTS.IS_INIT)\n if (!ref.current) {\n return\n }\n\n if (isInitConsts) {\n setStyle({ display: 'none', fontSize: `${fontSize}px` })\n return\n }\n if (CONSTS.IS_INIT) {\n return\n }\n\n let rect = ref.current.getBoundingClientRect()\n let theStyle = getComputedStyle(ref.current)\n let lineHeight = rect.height - 0.5\n console.log('InitConsts: width:', rect.width, 'height:', rect.height, 'windowWidth:', windowWidth, 'lineHeight:', lineHeight, 'fontSize:', theStyle.fontSize, 'fontFamily:', theStyle.fontFamily)\n InitCONSTS(windowWidth, lineHeight, isMobile, fontSize, scale, screenWidth)\n setIsInitConsts(true)\n }, [ref.current, isInitConsts])\n\n return ()\n}","import React, { useEffect, useState, useRef } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize, useKey, useStartTyping } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, getRootID, genUUID } from 'react-reducer-utils'\n\nimport * as DoArticlePage from '../reducers/articlePage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport FunctionBar from './FunctionBar'\n\nimport Article from './Article'\nimport Recommend from './cells/Recommend'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { CharMap, Content, Line } from '../types'\nimport { CHAR_WIDTH, CalcScreenScale } from './utils'\nimport InitConsts from './InitConsts'\nimport { prefix } from 'react-bootstrap/lib/utils/bootstrapUtils'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateArticlePage, doArticlePage] = useReducer(DoArticlePage)\n const [articlePageID] = useState(genUUID())\n\n const [stateHeader, doHeader] = useReducer(DoHeader)\n const [headerID] = useState(genUUID())\n\n const [isInitConsts, setIsInitConsts] = useState(false)\n\n //init\n let { bid, aid } = useParams()\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: React.MutableRefObject = useRef(null)\n const funcbarRef: React.MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [charMap, setCharMap] = useState({ width: innerWidth, height: innerHeight, charMap: {} })\n\n const [scrollTop, setScrollTop] = useState(0)\n const [isRecommend, setIsRecommend] = useState(false)\n const [recommendType, setRecommendStyle] = useState(1)\n const recommendTypeRef: React.MutableRefObject = useRef(null)\n const [recommend, setRecommend] = useState('')\n const [isRecommending, setIsRecommending] = useState(false)\n\n // the states that needs to be updated with some lazy-eval functions.\n const [stateDict, setStateDict] = useState({ isEditing: false })\n\n let charWidth = CHAR_WIDTH * 2\n let { lineHeight, fontSize } = CalcScreenScale(innerWidth)\n\n stateDict.isEditing = isRecommending\n\n //keys\n useKey('X', (e) => {\n if (stateDict.isEditing) {\n return\n }\n setIsRecommend(true)\n })\n\n useKey('Escape', (e) => {\n if (stateDict.isEditing) {\n return\n }\n setIsRecommend(false)\n })\n\n useKey('ArrowLeft', (e) => {\n if (stateDict.isEditing) {\n return\n }\n window.location.href = `/board/${bid}/articles`\n })\n\n useEffect(() => {\n if (isRecommend) {\n setRecommendStyle(1)\n setRecommend('')\n\n if (recommendTypeRef.current) {\n recommendTypeRef.current.focus()\n }\n } else {\n setRecommendStyle(1)\n setRecommend('')\n }\n }, [isRecommend])\n\n useEffect(() => {\n if (!isInitConsts) {\n return\n }\n doHeader.init(headerID)\n\n let query = QueryString.parse(window.location.search)\n let startIdx = query.start_idx || ''\n\n doArticlePage.init(articlePageID, bid, aid, startIdx)\n }, [isInitConsts])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let articlePage = getRoot(stateArticlePage)\n if (!articlePage) {\n return (\n
    \n \n
    \n )\n }\n let myID = getRootID(stateArticlePage)\n let errmsg = articlePage.errmsg || ''\n let brdname = articlePage.brdname\n let title = articlePage.title\n let theClass = articlePage.class\n let contentComments = articlePage.contentComments\n let isNextEnd = articlePage.isNextEnd\n let isPreEnd = articlePage.isPreEnd\n let scrollToRow = articlePage.scrollToRow\n\n let rank = articlePage.rank\n let nRecommend = articlePage.recommend\n let nComments = articlePage.n_comments\n let comments = articlePage.comments\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let fullTitle = theClass ? `[${theClass}] ` : ''\n fullTitle += title\n let headerTitle = brdname ? `${brdname} - ${fullTitle}` : ''\n\n let loadPre = (item: Line) => {\n if (!comments.length) {\n return\n }\n if (isPreEnd) {\n return\n }\n let startIdx = comments[0].idx\n doArticlePage.GetComments(myID, bid, aid, startIdx, true, true)\n }\n\n let loadNext = (item: Line) => {\n if (!comments.length) {\n return\n }\n if (isNextEnd) {\n return\n }\n let startIdx = comments[comments.length - 1].idx\n doArticlePage.GetComments(myID, bid, aid, startIdx, false, true)\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (typeof scrollToRow === 'undefined') {\n return false\n }\n\n doArticlePage.SetData(myID, { scrollToRow: undefined })\n\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderArticle = () => {\n return (\n
    \n )\n }\n\n let startRecommend = () => {\n setIsRecommend(true)\n }\n\n let header = getRoot(stateHeader)\n let userID = header ? header.user_id : ''\n let prefixLength = userID.length\n\n let renderRecommend = () => {\n let submit = (recommendType: string, recommend: Content) => {\n if (recommend) {\n doArticlePage.AddRecommend(myID, bid, aid, recommendType, recommend)\n }\n setIsRecommend(false)\n }\n let cancel = () => {\n setIsRecommend(false)\n }\n\n return (\n \n )\n }\n\n let loptions = [\n { text: \"推/噓\", action: startRecommend, hotkey: 'X' },\n { render: renderRecommend }\n ]\n let roptions = [\n { text: \"離開\", url: `/board/${bid}/articles`, hotkey: \"←\" },\n ]\n\n return (\n
    \n
    \n
    \n
    \n {renderArticle()}\n
    \n \n
    \n \n
    \n )\n}","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"NewArticlePage_title__KbxN5\",\"title-class\":\"NewArticlePage_title-class__vJhnY\",\"title-input\":\"NewArticlePage_title-input__UKALG\",\"error\":\"NewArticlePage_error__eJ3dU\"};","import { Thunk, init as _init, setData as _setData, createReducer } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n\nimport { COLOR_FOREGROUND_WHITE, COLOR_BACKGROUND_BLACK } from '../constants'\nimport { EditLine, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/NewArticlePage'\n\nconst _DEFAULT_POST_TYPES = [\n '問題',\n '建議',\n '討論',\n '心得',\n '閒聊',\n '請益',\n '情報',\n '公告',\n]\n\nconst _DEFAULT_POST_TYPE = _DEFAULT_POST_TYPES[0]\n\nexport interface State extends State_t {\n theDate: Date\n bid: string\n scrollTo: any\n content: EditLine[]\n brdname: string\n post_type: string[]\n theClass: string\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, bid: string): Thunk => {\n let theDate = new Date()\n return async (dispatch, _) => {\n let state: State_m = {\n theDate,\n bid,\n scrollTo: null,\n content: [],\n brdname: '',\n post_type: [],\n theClass: '',\n }\n dispatch(_init({ myID, state }))\n dispatch(_getBoardSummary(myID, bid))\n }\n}\n\nconst _getBoardSummary = (myID: string, bid: string): Thunk => {\n return async (dispatch, _) => {\n\n // Get board information\n let fields = ['brdname', 'post_type']\n const { data, errmsg, status } = await api(ServerUtils.GetBoardDetail(bid, fields))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n data.post_type = data.post_type || _DEFAULT_POST_TYPES\n // @ts-ignore\n let toUpdate: State_m = Object.assign({}, data)\n let postTypes = data.post_type || []\n if (postTypes.length > 0) {\n toUpdate.theClass = postTypes[0]\n } else {\n toUpdate.theClass = ''\n }\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport const UpdateContent = (myID: string, content: EditLine[]): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, { content }))\n }\n}\n\nexport const setData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n return dispatch(_setData(myID, data))\n }\n}\n\nexport const Submit = (myID: string, bid: string, theClass: string, title: string, content: EditLine[]): Thunk => {\n return async (dispatch, _) => {\n let uploadContent = content.map((each) => each.runes)\n const { errmsg, status } = await api(ServerUtils.CreateArticle(bid, theClass, title, uploadContent))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n\n window.location.href = '/board/' + bid + '/articles'\n }\n}\n\nexport default createReducer()\n","import { ChangeEvent, ChangeEventHandler, Dispatch, FocusEvent, KeyboardEvent, MouseEvent, MutableRefObject, SetStateAction } from 'react'\n\nimport { EditLine, EditRune_t, EditRunes_t, TableData } from '../../types'\nimport { calcTextCount, getClassNamesFromRune } from './utils'\nimport { CONSTS } from '../utils'\n\nimport styles from './ContentRenderer.module.css'\n\nimport Rune from './Rune'\nimport { cursorTo } from 'readline'\n\n\ntype Props = {\n rune: EditRune_t\n idx: number\n\n rowIndex?: number\n selectedRow: number\n selectedColumn: number\n newLine: () => void\n upLine: () => number\n nextLine: () => number\n submit: () => void\n isFocus?: boolean\n\n focusInputRef: MutableRefObject\n\n updateContent: (row: number, col: number, text: string) => void\n deleteContent: (row: number, col: number) => void\n\n inputWidth: number\n setInputWidth: Dispatch>\n\n onMouseDown?: (e: MouseEvent, rowIndex: number, idx: number) => void\n\n leftColumn: () => number\n rightColumn: () => number\n}\n\nexport default (props: Props) => {\n let { rune, idx, rowIndex, selectedRow, selectedColumn, updateContent, newLine, upLine, nextLine, submit, focusInputRef, isFocus, deleteContent, inputWidth, setInputWidth, onMouseDown, leftColumn, rightColumn } = props\n\n let text = rune.isTail ? '' : rune.text\n\n // console.log('EditCell: rune.isTail:', rune.isTail, 'rune.text:', rune.text || '', 'text:', text)\n\n let [classNames0] = getClassNamesFromRune(rune)\n if (rune.pullright) {\n classNames0.push(styles['pull-right'])\n }\n classNames0.push(styles['input'])\n\n let theStyles = {\n width: inputWidth + 'px',\n }\n\n let onChangeText: ChangeEventHandler = (e) => {\n if (!e.target) {\n return\n }\n // @ts-ignore\n //console.log('EditCell.onChangeText: start: value:', e.target.value)\n // @ts-ignore\n //updateText(selectedRow, selectedColumn, e.target.value)\n }\n\n let onKeyDownInput = (e: KeyboardEvent) => {\n // console.log('EditCell.onKeyDownInput: e:', e, 'isComposing:', e.nativeEvent.isComposing, 'focus:', document.activeElement, 'key:', e.key, 'key.length:', e.key.length, 'altKey:', e.altKey, 'ctrlKey:', e.ctrlKey, 'shiftKey:', e.shiftKey, 'metaKey:', e.metaKey, 'isComposing:', e.nativeEvent.isComposing, 'value:', focusInputRef.current?.value)\n\n if (focusInputRef.current === null) {\n return\n }\n\n let valueCount = calcTextCount(focusInputRef.current.value)\n let keyCount = e.key.length === 1 ? calcTextCount(e.key) : 0\n let newInputWidth = (valueCount + keyCount) * CONSTS.CHAR_WIDTH\n if (newInputWidth < 1) {\n newInputWidth = 1\n }\n //console.log('EditCell.onKeyDownInput: to setInputWidth:', 'input:', focusInputRef.current.value, 'textCount:', valueCount, 'newInputWidth:', newInputWidth)\n\n if (e.nativeEvent.isComposing) {\n switch (e.key) {\n case 'Enter':\n console.log('EditCell.onKeyDownInput: to set Enter: value:', focusInputRef.current.value)\n /*\n updateContent(selectedRow, selectedColumn, focusInputRef.current.value)\n focusInputRef.current.value = ''\n focusInputRef.current.defaultValue = ''\n setInputWidth(1)\n */\n setInputWidth(newInputWidth)\n break\n default:\n setInputWidth(newInputWidth)\n break\n }\n return\n }\n\n setInputWidth(newInputWidth)\n\n let isCtrl = e.ctrlKey || e.metaKey\n\n switch (e.key) {\n case 'Meta':\n break\n case 'Control':\n break\n case 'Enter':\n newLine()\n break\n case 'ArrowUp':\n upLine()\n break\n case 'ArrowDown':\n nextLine()\n break\n case 'ArrowLeft':\n leftColumn()\n break\n case 'ArrowRight':\n rightColumn()\n break\n case 'x': //Ctrl-x\n if (isCtrl) {\n submit()\n }\n break\n case 'X': //Ctrl-x\n if (isCtrl) {\n submit()\n }\n break\n default:\n break\n }\n }\n\n let onKeyUpInput = (e: KeyboardEvent) => {\n // @ts-ignore\n //console.log('EditCell.onKeyUpInput: start: e.key', e.key, 'isComposing:', e.nativeEvent.isComposing, 'value:', e.target.value, 'focusInput.value:', focusInputRef.current.value, 'selectionStart:', focusInputRef.current?.selectionStart, 'selectionEnd:', focusInputRef.current?.selectionEnd, 'altKey:', e.altKey, 'ctrlKey:', e.ctrlKey, 'shiftKey:', e.shiftKey, 'metaKey:', e.metaKey)\n if (focusInputRef.current === null) {\n return\n }\n\n let textCount = calcTextCount(focusInputRef.current.value)\n let newInputWidth = (textCount) * CONSTS.CHAR_WIDTH\n if (newInputWidth < 1) {\n newInputWidth = 1\n }\n //console.log('EditCell.onKeyUpInput: to setInputWidth:', 'input:', focusInputRef.current.value, 'textCount:', textCount, 'newInputWidth:', newInputWidth)\n setInputWidth(newInputWidth)\n\n if (e.nativeEvent.isComposing) {\n return\n }\n\n switch (e.key) {\n case 'Alt':\n return\n case 'CapsLock':\n return\n case 'Shift':\n return\n case 'Super':\n return\n case 'Meta':\n //setIsCtrl(false)\n break\n case 'Control':\n //setIsCtrl(false)\n break\n case 'Enter':\n return\n case 'Tab':\n return\n case 'ArrowDown':\n return\n case 'ArrowLeft':\n return\n case 'ArrowRight':\n return\n case 'ArrowUp':\n return\n case 'End':\n return\n case 'Home':\n return\n case 'PageDown':\n return\n case 'PageUp':\n return\n case 'Backspace':\n deleteContent(selectedRow, selectedColumn)\n return\n case 'Clear':\n return\n case 'Delete':\n deleteContent(selectedRow, selectedColumn)\n return\n default:\n break\n }\n\n if (focusInputRef.current.value === '') {\n return\n }\n\n updateContent(selectedRow, selectedColumn, focusInputRef.current.value)\n setInputWidth(1)\n focusInputRef.current.value = ''\n }\n\n let onFocusInput = (e: FocusEvent) => {\n //console.log('EditCell.onFocusInput: start: e:', e.target)\n }\n\n let onBlurInput = (e: FocusEvent) => {\n //console.log('EditCell.onBlurInput: start')\n if (isFocus && focusInputRef.current) {\n focusInputRef.current.focus()\n }\n }\n\n let _onMouseDown = (e: MouseEvent) => {\n if (!onMouseDown) {\n return\n }\n\n rowIndex = rowIndex || 0\n onMouseDown(e, rowIndex, idx)\n }\n\n // console.log('EditCell: to render: rowIndex:', rowIndex, 'idx:', idx, 'classNames0:', classNames0, 'text:', text, 'inputWidth:', inputWidth, 'selectStart:', focusInputRef.current?.selectionStart, 'selectEnd:', focusInputRef.current?.selectionEnd)\n\n let className0 = classNames0.join(' ')\n let cellKey = 'edit-cell-' + selectedRow + '-' + idx\n let inputKey = 'edit-cell-input-' + selectedRow + '-' + idx\n return (\n <>\n \n {text}\n \n )\n}\n","import { ChangeEvent, Dispatch, FocusEvent, KeyboardEvent, MouseEvent, MutableRefObject, SetStateAction, LegacyRef } from 'react'\n\nimport styles from './ContentRenderer.module.css'\n\nimport { COLOR_FOREGROUND_WHITE, COLOR_BACKGROUND_BLACK } from '../../constants'\nimport { EDIT_SCREEN_WIDTH, SCREEN_WIDTH } from '../utils'\n\nimport EditCell from './EditCell'\n\nimport Rune from './Rune'\nimport { EditLine, EditRune_t, EditRunes_t, TableData } from '../../types'\nimport { calcRunesCount, getClassNamesFromRune } from './utils'\n\nimport { CSSProperties } from 'react'\n\ntype Props = {\n data: TableData\n rowIndex?: number\n columnKey?: string\n selectedRow: number\n isFocus?: boolean\n onMouseDownCell?: (e: MouseEvent, rowIndex: number, idx: number) => void\n onMouseDownTail?: (e: MouseEvent, rowIndex: number, idx: number) => void\n selectedColumn: number\n newLine: () => void\n upLine: () => number\n nextLine: () => number\n isCtrl: boolean\n setIsCtrl: Dispatch>\n submit: () => void\n\n focusInputRef: MutableRefObject\n\n updateContent: (row: number, col: number, text: string) => void\n deleteContent: (row: number, col: number) => void\n\n inputWidth: number\n setInputWidth: Dispatch>\n\n leftColumn: () => number\n rightColumn: () => number\n}\n\nexport default (props: Props) => {\n let { data, rowIndex, columnKey, selectedRow, selectedColumn, isFocus, focusInputRef, onMouseDownCell, onMouseDownTail } = props\n rowIndex = rowIndex || 0\n columnKey = columnKey || ''\n isFocus = isFocus || false\n let item: EditLine = data[rowIndex]\n let runes: EditRunes_t = item.runes\n let background = data[rowIndex].background || COLOR_BACKGROUND_BLACK\n\n //console.log('Edit: rowIndex:', rowIndex, 'item:', item, 'isTail:', item.isTail)\n\n if (item.isTail) {\n //console.log('Edit: rowIndex:', rowIndex, 'to render tail')\n return
    \n {runes.map((each, idx) => ())}\n
    \n }\n\n let tail = _calcTail(runes)\n if (tail !== null) {\n runes = runes.concat([tail])\n }\n\n //console.log('Edit: rowIndex:', rowIndex, 'selectedRow:', selectedRow, 'selectedColumn:', selectedColumn, 'tail:', tail, 'runes:', runes, 'isFocus:', isFocus, 'focusInputRef:', focusInputRef.current, 'activeElement:', document.activeElement, 'focusInputRef.current === activeElement', focusInputRef.current === document.activeElement)\n\n let render = (rune: EditRune_t, idx: number) => {\n let isRune = rowIndex !== selectedRow || idx !== selectedColumn\n let Render = isRune ? Rune : EditCell\n\n return ()\n }\n\n let theStyle: CSSProperties = {\n whiteSpace: 'nowrap',\n overflowX: 'visible',\n }\n\n return (\n
    \n {runes.map((each, idx) => render(each, idx))}\n
    \n )\n}\n\nconst _calcTail = (runes: EditRunes_t): EditRune_t | null => {\n let count = calcRunesCount(runes)\n\n let n = SCREEN_WIDTH - count\n if (n < 0) {\n n = 0\n }\n\n return { text: ' '.repeat(n), color0: { foreground: COLOR_FOREGROUND_WHITE, background: COLOR_BACKGROUND_BLACK }, isEdit: false, isTail: true }\n}\n","import React, { Dispatch, FocusEvent, KeyboardEvent, SetStateAction, useEffect, useState, MutableRefObject, MouseEventHandler, useRef } from 'react'\n\nimport { Cell } from 'fixed-data-table-2'\n\nimport screenStyles from './Screen.module.css'\n\nimport Edit from './cells/Edit'\n\nimport Screen from './Screen'\n\nimport { CHAR_WIDTH, CONSTS, SCREEN_WIDTH } from './utils'\nimport { EditLine, EditRunes_t, PttColumn, TableData } from '../types'\nimport RowHighlightedCell from './cells/RowHighlightedCell'\nimport { COLOR_BACKGROUND_BLACK, COLOR_FOREGROUND_WHITE } from '../constants'\nimport { calcTextCount } from './cells/utils'\nimport { Container } from 'react-bootstrap/lib/Tab'\n\nconst _COLUMNS: PttColumn[] = [\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n { Header: 'text', accessor: 'runes', width: CHAR_WIDTH * 90, fixed: true },\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n]\n\ntype Props = {\n contentLines: EditLine[]\n setContentLines: Dispatch>\n\n width: number\n height: number\n selectedRow: number\n setSelectedRow: Dispatch>\n selectedColumn: number\n setSelectedColumn: Dispatch>\n}\n\nexport default (props: Props) => {\n const { width, height, selectedRow, setSelectedRow, selectedColumn, setSelectedColumn, contentLines, setContentLines } = props\n\n const [highlightRow, setHighlightRow] = useState(-1)\n\n const [tailLines, setTailLines] = useState([])\n const [allLines, setAllLines] = useState([])\n\n const focusInputRef: MutableRefObject = useRef(null)\n const [inputWidth, setInputWidth] = useState(1)\n\n const [firstRowIdx, setFirstRowIdx] = useState(0)\n const [endRowIdx, setEndRowIdx] = useState(0)\n const [scrollRowIdx, setScrollRowIdx] = useState(null)\n\n let safeSetSelectedRow = (row: number): number => {\n if (row >= contentLines.length) {\n row = contentLines.length - 1\n }\n setSelectedRow(row)\n setHighlightRow(row)\n\n console.log('Editor.safeSetSelectedRow: row:', row, 'contentLines:', contentLines.length, 'selectedRow:', selectedRow, 'highlightRow:', highlightRow, 'selectedColumn:', selectedColumn, 'length:', contentLines[row].runes.length)\n\n if (selectedColumn > contentLines[row].runes.length) {\n setSelectedColumn(contentLines[row].runes.length)\n }\n\n return row\n }\n\n\n let upLine = (): number => {\n if (selectedRow === 0) {\n return selectedRow\n }\n\n let newRow = safeSetSelectedRow(selectedRow - 1)\n\n return newRow\n }\n\n\n let nextLine = (): number => {\n if (selectedRow === contentLines.length - 1) {\n if (selectedColumn < contentLines[selectedRow].runes.length) {\n rightColumn()\n }\n return selectedRow\n }\n\n let newRow = safeSetSelectedRow(selectedRow + 1)\n\n return newRow\n }\n\n let leftColumn = (): number => {\n if (selectedColumn === 0) {\n if (selectedRow === 0) {\n return selectedColumn\n }\n\n let newRow = upLine()\n let newColumn = contentLines[newRow].runes.length\n setSelectedColumn(newColumn)\n\n return newColumn\n }\n setSelectedColumn(selectedColumn - 1)\n\n return selectedColumn - 1\n }\n\n let rightColumn = (): number => {\n if (selectedColumn >= contentLines[selectedRow].runes.length) {\n if (selectedRow >= contentLines.length - 1) {\n return selectedColumn\n }\n nextLine()\n setSelectedColumn(0)\n\n return 0\n }\n setSelectedColumn(selectedColumn + 1)\n\n return selectedColumn + 1\n }\n\n let safeSetSelectedRowCheckColumnOnly = (row: number) => {\n setSelectedRow(row)\n setHighlightRow(row)\n\n if (row >= contentLines.length) {\n return\n }\n\n if (selectedColumn > contentLines[row].runes.length) {\n setSelectedColumn(contentLines[row].runes.length)\n }\n }\n\n let safeSetHightlightRow = (row: number) => {\n if (row >= contentLines.length) {\n row = contentLines.length - 1\n }\n setHighlightRow(row)\n }\n\n let newLine = () => {\n if (focusInputRef.current === null) {\n //console.log('Editor.newLine: start: no focusInputRef: row:', selectedRow, 'col:', selectedColumn)\n return\n }\n //console.log('Editor.newLine: start: value:', focusInputRef.current.value, 'row:', selectedRow, 'col:', selectedColumn)\n\n let [newContentLines, newSelectedRow, newSelectedColumn] = updateContent(selectedRow, selectedColumn, focusInputRef.current.value)\n focusInputRef.current.value = ''\n focusInputRef.current.defaultValue = ''\n\n let lines = newContentLines.map((each) => each)\n if (lines.length <= newSelectedRow) {\n lines = insertNewLines(lines, lines.length, newSelectedRow + 1 - lines.length)\n }\n let line = lines[newSelectedRow]\n let theColumn = newSelectedColumn\n if (theColumn > line.runes.length) {\n theColumn = line.runes.length\n }\n let preRunes = line.runes.slice(0, theColumn)\n let postRunes = line.runes.slice(theColumn)\n\n line.runes = preRunes\n let theNewLine: EditLine = { runes: postRunes, isTail: false }\n let newLines = updateLines(lines, selectedRow, [line, theNewLine])\n setContentLines(newLines)\n let theAllLines = newLines.concat(tailLines)\n setAllLines(theAllLines)\n safeSetSelectedRowCheckColumnOnly(selectedRow + 1)\n setSelectedColumn(0)\n }\n\n let onMouseDownTail = () => {\n //console.log('Editor.onMouseDownTail: start: contentLines:', contentLines)\n safeSetSelectedRowCheckColumnOnly(contentLines.length - 1)\n setSelectedColumn(contentLines[contentLines.length - 1].runes.length)\n setInputWidth(1)\n }\n\n // init\n useEffect(() => {\n let initLines: EditLine[] = [\n { runes: [], isTail: false },\n ]\n\n setContentLines(initLines)\n\n let theAllLines = contentLines.concat(tailLines)\n setAllLines(theAllLines)\n }, [])\n\n // update height or CONSTS.LINE_HEIGHT\n useEffect(() => {\n let nTailLines = Math.ceil(height / CONSTS.LINE_HEIGHT - 1)\n const theTailLines: EditLine[] = Array.from(Array(nTailLines)).map((each, idx) => ({\n runes: [\n {\n text: '~' + ' '.repeat(SCREEN_WIDTH - 1),\n color0: {},\n isEdit: false,\n isTail: false,\n },\n ],\n isTail: true,\n }))\n\n setTailLines(theTailLines)\n\n let theAllLines = contentLines.concat(theTailLines)\n setAllLines(theAllLines)\n let newEndRowIdx = firstRowIdx + nTailLines\n\n //console.log('Editor.height update: firstRowIdx:', firstRowIdx, 'newEndRowIdx:', newEndRowIdx)\n setEndRowIdx(newEndRowIdx)\n }, [height, CONSTS.LINE_HEIGHT])\n\n useEffect(() => {\n //console.log('Editor: useEffect (focusRef, selectedRow): start: focusRef:', focusInputRef.current, 'highlightRow:', highlightRow)\n if (focusInputRef.current === null || highlightRow === -1) {\n return\n }\n\n if (focusInputRef.current === document.activeElement) {\n return\n }\n\n //console.log('Editor: useEffect (focusRef, selectedRow): to set focus: selectedStart:', focusInputRef.current.selectionStart, 'selectedEnd:', focusInputRef.current.selectionEnd)\n\n focusInputRef.current.focus()\n }, [focusInputRef.current, highlightRow, selectedRow, selectedColumn])\n\n useEffect(() => {\n //console.log('Editor: useEffect (selectedRow, firstRowIdx, endRowIdx): start: selectedRow:', selectedRow, 'firstRowIdx:', firstRowIdx, 'endRowIdx:', endRowIdx)\n if (selectedRow >= firstRowIdx + 1 && selectedRow < endRowIdx - 1) {\n return\n }\n\n let nRows = endRowIdx - firstRowIdx\n\n if (selectedRow < firstRowIdx + 2) {\n let toSetScrollRowIdx = firstRowIdx - nRows + 2\n if (toSetScrollRowIdx < 0) {\n toSetScrollRowIdx = 0\n } else if (toSetScrollRowIdx >= contentLines.length + tailLines.length) {\n toSetScrollRowIdx = contentLines.length + tailLines.length - 1\n }\n //console.log('Editor: useEffect (selectedRow, firstRowIdx, endRowIdx): to setScrollRowIdx: toSetScrollRowIdx:', toSetScrollRowIdx)\n setScrollRowIdx(toSetScrollRowIdx)\n } else if (selectedRow >= endRowIdx - 2) {\n let toSetScrollRowIdx = endRowIdx + nRows - 3\n if (toSetScrollRowIdx < 0) {\n toSetScrollRowIdx = 0\n } else if (toSetScrollRowIdx >= contentLines.length + tailLines.length) {\n toSetScrollRowIdx = contentLines.length + tailLines.length - 1\n }\n //console.log('Editor: useEffect (selectedRow, firstRowIdx, endRowIdx): to setScrollRowIdx: toSetScrollRowIdx:', toSetScrollRowIdx)\n setScrollRowIdx(toSetScrollRowIdx)\n }\n\n }, [selectedRow, firstRowIdx, endRowIdx])\n\n /*****\n * Context\n */\n let deleteContent = (row: number, col: number) => {\n if (col === 0) {\n if (row === 0) {\n return\n }\n\n let currentLine = contentLines[row]\n let preContentLines = contentLines.slice(0, row)\n let postContentLines = contentLines.slice(row + 1)\n let newContentLines = preContentLines.concat(postContentLines)\n row--\n col = newContentLines[row].runes.length\n let newLines = attachLine(newContentLines, row, currentLine)\n setContentLines(newLines)\n let theAllLines = newLines.concat(tailLines)\n setAllLines(theAllLines)\n safeSetSelectedRow(row)\n setSelectedColumn(col)\n return\n }\n\n col--\n\n deleteContentCore(row, col)\n }\n\n let deleteContentCore = (row: number, col: number): [EditLine[], number, number] => {\n let lines = contentLines\n if (lines.length <= row) {\n return [lines, row, col]\n }\n\n // touch line\n let line = lines[row]\n let preRunes = line.runes.slice(0, col)\n let postRunes = line.runes.slice(col + 1)\n let newRunes = preRunes.concat(postRunes)\n\n console.log('deleteContentCore: row:', row, 'col:', col, 'orig:', line.runes, 'new:', newRunes)\n\n let [wrapLines, wrapRow, wrapColumn] = runesToWrapLines(newRunes, row, col)\n\n let newLines = updateLines(lines, row, wrapLines)\n\n setContentLines(newLines)\n let theAllLines = newLines.concat(tailLines)\n setAllLines(theAllLines)\n setSelectedRow(wrapRow)\n setSelectedColumn(wrapColumn)\n\n return [newLines, wrapRow, wrapColumn]\n }\n\n let attachLine = (lines: EditLine[], row: number, currentLine: EditLine): EditLine[] => {\n let theRunes = lines[row].runes\n let theColumn = theRunes.length\n let newRunes = theRunes.concat(currentLine.runes)\n let [wrapLines, wrapRow, wrapColumn] = runesToWrapLines(newRunes, row, theColumn)\n let newLines = updateLines(lines, row, wrapLines)\n\n return newLines\n }\n\n let updateContent = (row: number, col: number, text: string): [EditLine[], number, number] => {\n //console.log('Editor.updateContent: start: row:', row, 'col:', col, 'text:', text, 'EDIT_SCREEN_WIDTH:', CONSTS.EDIT_SCREEN_WIDTH)\n\n // touch lines\n let lines = contentLines\n if (lines.length <= row) {\n lines = insertNewLines(lines, lines.length, row + 1 - lines.length)\n }\n\n // touch line\n let line = lines[row]\n let runes = textToEditRunes(text)\n let newRunes = updateRunes(line.runes, col, runes)\n let newColumn = col + runes.length\n\n let [wrapLines, wrapRow, wrapColumn] = runesToWrapLines(newRunes, row, newColumn)\n let newLines = updateLines(lines, row, wrapLines)\n //console.log('Editor.updateContent: after runesToWrapLines: runes:', runes, 'col:', col, 'newRunes:', newRunes, 'row:', row, 'newColumn:', newColumn, 'wrapLines:', wrapLines, 'wrapRow:', wrapRow, 'wrapColumn:', wrapColumn, 'newLines:', newLines)\n\n setContentLines(newLines)\n let theAllLines = newLines.concat(tailLines)\n setAllLines(theAllLines)\n setSelectedRow(wrapRow)\n setSelectedColumn(wrapColumn)\n\n return [newLines, wrapRow, wrapColumn]\n }\n\n let textToEditRunes = (text: string): EditRunes_t => {\n return text.split('').map((each) => ({ text: each, color0: { foreground: COLOR_FOREGROUND_WHITE, backgroud: COLOR_BACKGROUND_BLACK }, isEdit: true, isTail: false }))\n }\n\n let updateRunes = (runes: EditRunes_t, column: number, newRunes: EditRunes_t): EditRunes_t => {\n let preRunes: EditRunes_t = runes.slice(0, column)\n let postRunes: EditRunes_t = runes.slice(column)\n return preRunes.concat(newRunes).concat(postRunes)\n }\n\n let insertLines = (lines: EditLine[], row: number, newLines: EditLine[]): EditLine[] => {\n let preLines = lines.slice(0, row)\n let postLines = lines.slice(row)\n return preLines.concat(newLines).concat(postLines)\n }\n\n let insertNewLines = (lines: EditLine[], startRow: number, nRow: number): EditLine[] => {\n let addLines: EditLine[] = Array.from(Array(nRow)).map(() => ({ runes: [], isTail: false }))\n return insertLines(lines, startRow, addLines)\n }\n\n let runesToWrapLines = (runes: EditRunes_t, row: number, col: number): [EditLine[], number, number] => {\n let lines: EditLine[] = []\n let wrapRow = 0\n let wrapCol = 0\n let textCount = 0\n let line: EditLine = { runes: [], isTail: false }\n\n //console.log('Editor.runesToWrapLines: runes:', runes, 'row:', row, 'col:', col)\n let eachRow = row\n runes.map((each, eachColumn) => {\n let eachCount = calcTextCount(each.text)\n if (eachCount === 0) {\n console.log('[ERROR] Editor.runesToWrapLines: text should not be empty: rune:', each.text, 'row:', row, 'col:', col, 'eachColumn:', eachColumn)\n return\n }\n\n if (textCount + eachCount > CONSTS.EDIT_SCREEN_WIDTH) {\n lines.push(line)\n line = { runes: [], isTail: false }\n textCount = 0\n eachRow++\n }\n\n line.runes.push(each)\n textCount += eachCount\n\n // if col < runes.length\n if (eachColumn === col) {\n wrapRow = eachRow\n wrapCol = line.runes.length - 1\n }\n })\n\n if (line.runes.length > 0 || lines.length === 0) {\n lines.push(line)\n }\n\n // if col === runes.length\n if (col === runes.length) {\n wrapRow = row + lines.length - 1\n wrapCol = lines[lines.length - 1].runes.length\n }\n\n return [lines, wrapRow, wrapCol]\n }\n\n let updateLines = (lines: EditLine[], row: number, newLines: EditLine[]): EditLine[] => {\n let preLines = lines.slice(0, row)\n let postLines = lines.slice(row + 1)\n return preLines.concat(newLines).concat(postLines)\n }\n\n /*****\n * Cell\n */\n // onMouseDownCell\n let onMouseDownCell = (e: MouseEvent, row: number, col: number) => {\n //console.log('Editor.onMouseDownCell: start: lines:', contentLines.length, 'tailLines:', tailLines.length, 'row:', row, 'col:', col, 'focusInputRef:', focusInputRef.current, 'target:', e.target)\n if (contentLines.length === 0) {\n return\n }\n if (row >= contentLines.length) {\n row = contentLines.length - 1\n }\n\n let runes = contentLines[row].runes\n\n // @ts-ignore\n if (e.nativeEvent.offsetX >= e.target.clientWidth / 2 && col < runes.length && !(selectedRow === row && selectedColumn === col + 1)) {\n\n col++\n }\n\n // @ts-ignore\n //console.log('Editor.onMouseDownCell: to check runes: lines:', contentLines.length, 'tailLines:', tailLines.length, 'row:', row, 'col:', col, 'e:', e, 'offsetX:', e.nativeEvent.offsetX, 'target.width:', e.nativeEvent.target.clientWidth, 'value:', e.target.innerHTML)\n\n if (col > runes.length) {\n console.log('[ERROR] Editor.onMouseDownCell: col > runes.length: row:', row, 'col:', col, 'runes.length:', runes.length)\n col = runes.length\n }\n\n //console.log('Editor.onMouseDownCell: to set: lines:', contentLines.length, 'tailLines:', tailLines.length, 'row:', row, 'col:', col)\n\n safeSetSelectedRow(row)\n setSelectedColumn(col)\n\n if (focusInputRef.current === null) {\n return\n }\n\n setInputWidth(1)\n focusInputRef.current.value = ''\n }\n\n // renderCell\n let renderCell = (column: PttColumn, data: TableData, fontSize: number, lineHeight: number) => {\n let renderer = null\n\n // assume that we will need to use different highlight for different cell\n let defaultHighlight = {\n backgroundColor: '#333',\n }\n\n switch (column.accessor) {\n case 'runes':\n renderer = Edit\n break\n default:\n renderer = () => ()\n }\n\n let isFocus = highlightRow !== -1\n\n return \n }\n\n /*****\n * Screen\n */\n let onScrollEnd = (x: number, y: number, newFirstRowIdx: number, newEndRowIdx: number) => {\n //console.log('Editor.onScrollEnd: x:', x, 'y:', y, 'firstRowIndex:', firstRowIdx, 'endRowIndex:', endRowIdx, 'newFirstRowIndex:', newFirstRowIdx, 'newEndRowIndex:', newEndRowIdx, 'selectedRow:', selectedRow, 'scrollRowIdx:', scrollRowIdx)\n\n setFirstRowIdx(newFirstRowIdx)\n setEndRowIdx(newEndRowIdx)\n\n let theNewFirstRowIdx = newFirstRowIdx < contentLines.length - 1 ? (newFirstRowIdx + 1) : newFirstRowIdx\n\n // not from auto newline / auto-up / auto-down\n if (scrollRowIdx === null) {\n if (newFirstRowIdx < firstRowIdx || selectedRow < newFirstRowIdx) {\n //console.log('Editor.onScrollEnd: to safeSetSelectedRow: selctedRow:', selectedRow, 'newRow:', theNewFirstRowIdx, 'contentLines:', contentLines.length)\n safeSetSelectedRow(theNewFirstRowIdx)\n } else if (selectedRow >= newEndRowIdx) {\n //console.log('Editor.onScrollEnd: to safeSetSelectedRow: selctedRow:', selectedRow, 'newRow:', theNewFirstRowIdx, 'contentLines:', contentLines.length)\n safeSetSelectedRow(theNewFirstRowIdx)\n }\n }\n\n setScrollRowIdx(null)\n\n //console.log('Editor.onScrollEnd: done')\n }\n\n return (\n
    \n \n
    \n )\n}\n","import React, { useEffect, useState, useRef, MutableRefObject, FormEvent, FocusEvent, MouseEvent } from 'react'\nimport pageStyles from './Page.module.css'\nimport styles from './NewArticlePage.module.css'\n\n// eslint-disable-next-line\nimport * as errors from './errors'\n\nimport { useWindowSize } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { DropdownList } from 'react-widgets'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport * as DoNewArticlePage from '../reducers/newArticlePage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport FunctionBar from './FunctionBar'\n\nimport Editor from './Editor'\n\nimport { COLOR_FOREGROUND_WHITE, COLOR_BACKGROUND_BLACK } from '../constants'\nimport { EditLine } from '../types'\nimport Empty from './Empty'\nimport InitConsts from './InitConsts'\nimport { CONSTS } from './utils'\n\n\ntype Props = {\n}\n\n\nexport default (props: Props) => {\n const [stateNewArticlePage, doNewArticlePage] = useReducer(DoNewArticlePage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const [isShowCursor, setIsShowCursor] = useState(true)\n const isShowCursorRef = useRef(isShowCursor)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n const [isInitConsts, setIsInitConsts] = useState(false)\n\n //init\n let { bid } = useParams()\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let newArticlePageID = genUUID()\n\n doNewArticlePage.init(newArticlePageID, bid)\n\n const interval = setInterval(() => {\n setIsShowCursor(!isShowCursorRef.current)\n }, 500)\n return () => clearInterval(interval)\n }, [])\n\n useEffect(() => {\n if (!isInitConsts) {\n return\n }\n\n }, [isInitConsts])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n let screenWidth = innerWidth\n let screenHeight = innerHeight - headerHeight - funcbarHeight\n\n const [selectedRow, setSelectedRow] = useState(0)\n const [selectedColumn, setSelectedColumn] = useState(0)\n\n const [title, setTitle] = useState('')\n\n const [content, setContent] = useState([])\n\n //get data\n let newArticlePage = getRoot(stateNewArticlePage)\n if (!newArticlePage) {\n return ()\n }\n let myID = getRootID(stateNewArticlePage)\n let errmsg = newArticlePage.errmsg || ''\n let brdname = newArticlePage.brdname\n let postTypes = newArticlePage.post_type.map(each => ({ value: each, label: '[' + each + ']' }))\n\n let theClass = newArticlePage.theClass\n let setTheClass = (newClass: string) => {\n doNewArticlePage.setData(myID, { theClass: newClass })\n }\n\n let submit = (e: FormEvent) => {\n if (!theClass) {\n showErrMsg('您忘記類別囉~')\n return\n }\n if (!title) {\n showErrMsg('您忘記標題囉~')\n return\n }\n doNewArticlePage.Submit(myID, bid, theClass, title, content)\n }\n\n let allErrMsg: string[] = []\n if (errMsg) {\n allErrMsg.push(errMsg)\n }\n if (errmsg) {\n allErrMsg.push(errmsg)\n }\n let renderError = () => {\n return ({allErrMsg.join(',')})\n }\n\n let loptions = [\n { text: \"發表文章\", action: submit },\n { render: renderError },\n ]\n let roptions = [\n { text: (selectedRow + 1) + ',' + (selectedColumn + 1) },\n { text: \"離開\", url: `/board/${bid}/articles` },\n ]\n\n let onFocus = (e: FocusEvent) => {\n //console.log('NewArticlePage: onFocus: start')\n }\n\n let onBlur = (e: FocusEvent) => {\n //console.log('NewArticlePage: onBlur: start')\n }\n\n let showErrMsg = (text: string) => {\n setErrMsg(text)\n setTimeout(() => cleanErrMsg(), 1000)\n }\n\n let cleanErrMsg = () => {\n setErrMsg('')\n doNewArticlePage.setData(myID, { errmsg: '' })\n }\n\n let onMouseDownHeader = (e: MouseEvent) => {\n //console.log('NewArticlePage: onMouseDownHeader: start')\n }\n\n let classStyle = {\n width: '170px',\n display: 'inline-block',\n }\n\n let renderHeader = () => {\n return (\n
    \n {brdname} - \n { setTheClass(item.value) }} />\n setTitle(e.target.value)} defaultValue={title} onMouseDown={onMouseDownHeader} placeholder={'標題:'} />\n
    \n )\n }\n\n return (\n
    \n
    \n
    \n
    \n\n \n\n
    \n \n
    \n \n
    \n )\n}\n","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n\nimport { MergeList, SantizeBoard } from './utils'\n\nimport { BoardSummary_i, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/ClassBoardsPage'\n\nexport interface State extends State_t {\n theDate: Date\n clsID: number\n startIdx: string\n scrollTo: any\n list: BoardSummary_i[]\n lastPre: string\n lastNext: string\n isBusyLoading: boolean\n nextIdx: string\n scrollToRow: number\n isPreEnd: boolean\n isNextEnd: boolean\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, clsID: number, startIdx: string): Thunk => {\n let theDate = new Date()\n return async (dispatch, _) => {\n let state: State = {\n theDate,\n clsID,\n startIdx,\n scrollTo: null,\n list: [],\n lastPre: '',\n lastNext: '',\n isBusyLoading: false,\n nextIdx: '',\n scrollToRow: 0,\n isPreEnd: false,\n isNextEnd: false,\n }\n dispatch(_init({ myID, state }))\n dispatch(GetBoards(myID, clsID, startIdx, false, false))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nexport const GetBoards = (myID: string, clsID: number, startIdx: string, desc: boolean, isExclude: boolean): Thunk => {\n clsID = clsID || 1 //clsID default by 1. (no clsID == 0)\n return async (dispatch, getClassState) => {\n const state = getClassState()\n const me = getState(state, myID)\n if (!me) {\n return\n }\n let myList = me.list\n\n //check busy\n let lastPre = me.lastPre\n let lastNext = me.lastNext\n let isBusyLoading = me.isBusyLoading\n if (isBusyLoading) {\n return\n }\n\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n\n } else {\n if (lastNext === startIdx) {\n return\n }\n\n }\n\n dispatch(_setData(myID, { isBusyLoading: true }))\n\n // api\n const { data, errmsg, status } = await api(ServerUtils.LoadClassBoards(clsID, startIdx, desc))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg, isBusyLoading: false }))\n return\n }\n if (!data) {\n return\n }\n\n // integrate list\n let dataList = data.list\n dataList = dataList.map((each) => SantizeBoard(each))\n\n let newList = MergeList(myList, dataList, desc, isExclude)\n\n // to update\n let toUpdate: State_m = {\n list: newList\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n }\n\n } else {\n toUpdate.scrollToRow = dataList.length - 1 //only dataList.length - 1 new items.\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n }\n }\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport default createReducer()\n","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport { PTT_GUEST } from 'config'\n\nimport * as DoClassBoardsPage from '../reducers/classBoardsPage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport BoardList from './BoardList'\nimport FunctionBar from './FunctionBar'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { BoardSummary_i } from '../types'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateClassBoardsPage, doClassBoardsPage] = useReducer(DoClassBoardsPage)\n\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n\n //init\n let { clsID } = useParams()\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let classBoardsPageID = genUUID()\n const query = QueryString.parse(window.location.search)\n const { start_idx: startIdx } = query\n\n doClassBoardsPage.init(classBoardsPageID, clsID, startIdx)\n\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let boardsPage = getRoot(stateClassBoardsPage)\n if (!boardsPage) {\n return ()\n }\n let myID = getRootID(stateClassBoardsPage)\n let errmsg = boardsPage.errmsg || ''\n let boards = boardsPage.list\n let isNextEnd = boardsPage.isNextEnd\n let isPreEnd = boardsPage.isPreEnd\n let scrollToRow = boardsPage.scrollToRow\n\n let header = getRoot(stateHeader)\n if (!header) {\n return ()\n }\n let myUserID = header.user_id\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = '分類看板'\n\n\n let loadPre = (item: BoardSummary_i) => {\n if (item.numIdx === 1 || isPreEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n doClassBoardsPage.GetBoards(myID, clsID, idx, true, true)\n }\n\n let loadNext = (item: BoardSummary_i) => {\n if (isNextEnd) {\n return\n }\n\n let idx = item.idx || ''\n if (!idx) {\n return\n }\n\n doClassBoardsPage.GetBoards(myID, clsID, idx, false, true)\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (typeof scrollToRow === 'undefined') {\n return false\n }\n\n doClassBoardsPage.SetData(myID, { scrollToRow: undefined })\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderBoards = () => {\n if (boards.length === 0) {\n let style = {\n height: listHeight\n }\n return (\n
    \n

    目前找不到看板喔~

    \n
    \n )\n } else {\n return (\n \n )\n }\n }\n\n let loptions = [\n { text: \"搜尋看板\", action: () => { } },\n ]\n\n let roptions = []\n if (myUserID && myUserID !== PTT_GUEST) {\n roptions.push({ text: \"我的最愛\", action: () => { window.location.href = '/user/' + myUserID + '/favorites' } })\n }\n roptions.push({ text: \"熱門看板\", action: () => { window.location.href = '/boards/popular' } })\n roptions.push({ text: \"所有看板\", action: () => { window.location.href = '/boards' } })\n\n return (\n
    \n
    \n
    \n
    \n {renderBoards()}\n
    \n \n
    \n
    \n )\n}","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n//import * as errors from './errors'\n\nimport { MergeIdxList } from './utils'\nimport { ManArticleSummary_i, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/ManualsPage'\n\nexport interface State extends State_t {\n theDate: Date\n title: string\n startIdx: string\n scrollTo: any\n list: ManArticleSummary_i[]\n lastPre: string\n lastNext: string\n isBusyLoading: boolean\n isPreEnd: boolean\n isNextEnd: boolean\n nextCreateTime: number\n nextIdx: string\n scrollToRow: number\n allManuals: ManArticleSummary_i[]\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, bid: string, path: string, title: string, startIdx: string): Thunk => {\n let theDate = new Date()\n return async (dispatch, _) => {\n let state: State = {\n theDate,\n title,\n startIdx,\n scrollTo: null,\n list: [],\n lastPre: '',\n lastNext: '',\n isBusyLoading: false,\n isPreEnd: false,\n isNextEnd: false,\n nextCreateTime: 0,\n nextIdx: '',\n scrollToRow: 0,\n allManuals: []\n }\n dispatch(_init({ myID, state: state }))\n dispatch(_getBoardSummary(myID, bid, path, false, title, startIdx))\n }\n}\n\nconst _getBoardSummary = (myID: string, bid: string, path: string, desc: boolean, title: string, startIdx: string): Thunk => {\n return async (dispatch, _) => {\n // Get board information\n const { data, errmsg, status } = await api(ServerUtils.GetBoardSummary(bid))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n dispatch(_setData(myID, data))\n dispatch(GetManuals(myID, bid, path, title, startIdx, desc, false))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\nexport const GetManuals = (myID: string, bid: string, path: string, searchTitle: string, startIdx: string, desc: boolean, isExclude: boolean): Thunk => {\n return async (dispatch, getClassState) => {\n let state = getClassState()\n let me = getState(state, myID)\n if (!me) {\n return\n }\n let myList = me.list || []\n\n //check busy\n let lastPre = me.lastPre || ''\n let lastNext = me.lastNext || ''\n let isBusyLoading = me.isBusyLoading || false\n let isPreEnd = me.isPreEnd || false\n let isNextEnd = me.isNextEnd || false\n\n searchTitle = searchTitle || ''\n let myLastSearchTitle = me.lastSearchTitle || ''\n if (searchTitle !== myLastSearchTitle) {\n myList = []\n lastPre = ''\n lastNext = ''\n isPreEnd = false\n isNextEnd = false\n }\n\n if (isBusyLoading) {\n return\n }\n if (desc) {\n if (lastPre === startIdx) {\n return\n }\n\n } else {\n if (lastNext === startIdx) {\n return\n }\n }\n\n dispatch(_setData(myID, { isBusyLoading: true }))\n\n const { data, errmsg, status } = await api(ServerUtils.LoadManuals(bid, path, desc))\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg, isBusyLoading: false }))\n return\n }\n if (!data) {\n dispatch(_setData(myID, { errmsg: 'no data', isBusyLoading: false }))\n return\n }\n\n state = getClassState()\n me = getState(state, myID)\n if (!me) {\n dispatch(_setData(myID, { errmsg: 'no me', isBusyLoading: false }))\n return\n }\n\n let dataList = data.list\n dataList.map((each) => each.url = `/board/${bid}/manual/${each.aid}`)\n\n let defaultStartNum = desc ? me.total : 1\n let startNumIdx = data.start_num_idx || defaultStartNum\n\n let newList = MergeIdxList(myList, dataList, desc, startNumIdx, isExclude)\n\n let toUpdate: State_m = {\n lastSearchTitle: searchTitle,\n list: newList,\n nextCreateTime: data.next_create_time,\n isBusyLoading: false,\n lastPre: lastPre,\n lastNext: lastNext,\n isPreEnd: isPreEnd,\n isNextEnd: isNextEnd,\n }\n if (!desc) {\n toUpdate.nextIdx = data.next_idx\n toUpdate.lastNext = startIdx\n if (!data.next_idx) {\n toUpdate.isNextEnd = true\n isNextEnd = true\n }\n if (!startIdx) {\n toUpdate.isPreEnd = true\n isPreEnd = true\n }\n\n } else {\n toUpdate.scrollToRow = dataList.length - 1 //only dataList.length - 1 new items.\n toUpdate.lastPre = startIdx\n toUpdate.isBusyLoading = false\n if (!data.next_idx) {\n toUpdate.isPreEnd = true\n isPreEnd = true\n }\n if (!startIdx) {\n toUpdate.isNextEnd = true\n isNextEnd = true\n }\n }\n\n let allManuals = newList\n toUpdate.allManuals = allManuals\n\n dispatch(_setData(myID, toUpdate))\n }\n}\n\nexport default createReducer()\n","import { Thunk, init as _init, setData as _setData, createReducer, getState } from 'react-reducer-utils'\n\nimport * as ServerUtils from './ServerUtils'\nimport api from './api'\n//import * as errors from './errors'\n\nimport { Content, Line, Maybe, State_t } from '../types'\n\nexport const myClass = 'demo-pttbbs/ManualPage'\n\nexport interface State extends State_t {\n theDate: Date\n scrollTo: any\n isPreEnd: boolean\n\n}\n\nexport interface State_m extends Maybe { }\n\nexport const init = (myID: string, bid: string, path: string): Thunk => {\n return async (dispatch, _) => {\n let theDate = new Date()\n let state: State = {\n theDate,\n scrollTo: null,\n isPreEnd: true,\n }\n dispatch(_init({ myID, state }))\n dispatch(GetManualContent(myID, bid, path))\n }\n}\n\nexport const SetData = (myID: string, data: State_m): Thunk => {\n return async (dispatch, _) => {\n dispatch(_setData(myID, data))\n }\n}\n\n//GetManualContent\n//\n//1. 拿到 content.\n//2. parse content.\n//3. contentComments.\nexport const GetManualContent = (myID: string, bid: string, path: string): Thunk => {\n return async (dispatch, getClassState) => {\n const { data, errmsg, status } = await api(ServerUtils.GetManual(bid, path))\n\n console.log('GetManualContent: data:', data, 'status:', status, 'myID:', myID)\n\n if (status !== 200) {\n dispatch(_setData(myID, { errmsg }))\n return\n }\n if (!data) {\n return\n }\n\n dispatch(_setData(myID, data))\n\n let content = data.content\n let lines = _parseLines(content)\n\n let state = getClassState()\n let me = getState(state, myID)\n if (!me) {\n return\n }\n\n let isPreEnd = me.isPreEnd || false\n let comments = me.comments || []\n let contentComments = isPreEnd ? lines.concat(comments) : comments\n\n dispatch(_setData(myID, { content: lines, contentComments }))\n }\n}\n\nconst _parseLines = (content: Content): Line[] => {\n return content.map((runes) => ({ runes }))\n}\n\nexport default createReducer()\n","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize, useKey } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport * as DoManualPage from '../reducers/manualPage'\nimport * as DoHeader from '../reducers/header'\n\nimport Header from './Header'\nimport FunctionBar from './FunctionBar'\n\nimport Article from './Article'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { Line, PttOption } from '../types'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n const [stateManualPage, doManualPage] = useReducer(DoManualPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //init\n let { bid, path } = useParams()\n path = path || ''\n\n let pathList = path.split('/')\n let dirname = pathList.slice(0, pathList.length - 1).join('/')\n let parentUrl = `/board/${bid}/manual`\n if (dirname !== '') {\n parentUrl += '/' + dirname\n }\n\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let manualPageID = genUUID()\n const query = QueryString.parse(window.location.search)\n let startIdx = query.start_idx || ''\n\n doManualPage.init(manualPageID, bid, path, startIdx)\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //render\n\n useKey('ArrowLeft', (e) => {\n window.location.href = parentUrl\n })\n\n //get data\n let manualPage = getRoot(stateManualPage)\n if (!manualPage) {\n return ()\n }\n let myID = getRootID(stateManualPage)\n let errmsg = manualPage.errmsg || ''\n let brdname = manualPage.brdname\n let title = manualPage.title\n let content = manualPage.content\n let scrollToRow = (typeof manualPage.scrollToRow === 'undefined') ? null : manualPage.scrollToRow\n\n //keys\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let fullTitle = ''\n fullTitle += title\n let headerTitle = `(精華區) ${brdname} - ${fullTitle}`\n\n let loadPre = (item: Line) => { }\n let loadNext = (item: Line) => { }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (scrollToRow === null) {\n return false\n }\n\n doManualPage.SetData(myID, { scrollToRow: null })\n\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderManual = () => {\n return (\n
    \n )\n }\n\n let loptions: PttOption[] = [\n ]\n\n let roptions: PttOption[] = [\n { text: \"離開\", url: parentUrl, hotkey: \"←\" },\n ]\n\n return (\n
    \n
    \n
    \n
    \n {renderManual()}\n
    \n \n
    \n
    \n )\n}\n","import React, { useState } from 'react'\n\nimport { Cell } from 'fixed-data-table-2'\nimport CSS from 'csstype'\n\nimport screenStyles from './Screen.module.css'\n\nimport RowHighlightedCell from './cells/RowHighlightedCell'\nimport PlainText from './cells/PlainText'\nimport PostDate from './cells/PostDate'\nimport Idx from './cells/Idx'\nimport CommNum from './cells/CommNum'\nimport Category from './cells/Category'\nimport State from './cells/State'\n\nimport Screen from './Screen'\n\nimport { CHAR_WIDTH } from './utils'\nimport { ManArticleSummary_i, PttColumn, TableData } from '../types'\n\nconst _COLUMNS: PttColumn[] = [\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n { Header: '標 題', accessor: 'title', width: CHAR_WIDTH * 48, fixed: true, headerTextAlign: 'left' },\n { Header: '', accessor: '', width: 0, fixed: true, type: 'rest' },\n]\n\ntype Props = {\n manuals: ManArticleSummary_i[]\n width: number\n height: number\n loadPre: Function\n loadNext: Function\n scrollToRow: number\n onVerticalScroll: (scrollPos: number) => boolean\n scrollTop: number\n}\n\nexport default (props: Props) => {\n const { manuals, width, height, loadPre, loadNext, scrollToRow, onVerticalScroll, scrollTop } = props\n\n const [selectedRow, setSeletedRow] = useState(-1)\n\n // assume that we will need to use different highlight for different cell\n let defaultHighlight = {\n backgroundColor: '#333',\n }\n\n let renderCell = (column: PttColumn, data: TableData, fontSize: number) => {\n let renderer = null\n switch (column.accessor) {\n case 'numIdx':\n renderer = Idx\n break\n case 'read':\n renderer = State\n break\n case 'recommend':\n renderer = CommNum\n break\n case 'create_time':\n renderer = PostDate\n break\n case 'class':\n renderer = Category\n break\n case 'title':\n renderer = PlainText\n break\n case 'owner':\n renderer = PlainText\n break\n default:\n return \n }\n return \n }\n\n let renderHeader = (column: PttColumn, fontSize: number) => {\n let style: CSS.Properties = {\n fontSize: fontSize + 'px',\n }\n let textAlign = column.headerTextAlign\n if (textAlign) {\n style.textAlign = textAlign\n }\n\n return ({column.Header})\n }\n\n if (manuals.length === 0) {\n return (\n
    這個精華區目前沒有文章喔~
    \n )\n }\n\n return (\n \n )\n}\n","import React, { useEffect, useState, useRef, MutableRefObject } from 'react'\nimport pageStyles from './Page.module.css'\n\nimport * as errors from './errors'\n\nimport { useWindowSize, useKey } from 'react-use'\nimport { useParams } from 'react-router-dom'\n\nimport { useReducer, getRoot, genUUID, getRootID } from 'react-reducer-utils'\n\nimport * as DoManualsPage from '../reducers/manualsPage'\nimport * as DoHeader from '../reducers/header'\n\nimport ManualPage from './ManualPage'\n\nimport Header from './Header'\nimport ManualList from './ManualList'\nimport FunctionBar from './FunctionBar'\nimport EmptyList from './EmptyList'\n\nimport QueryString from 'query-string'\nimport Empty from './Empty'\nimport { ManArticleSummary_i, PttOption } from '../types'\n\ntype Props = {\n\n}\n\ntype HeaderProps = {\n\n}\n\nexport default (props: Props) => {\n //init\n let { bid, path: _path } = useParams()\n let path = _path || ''\n let pathList = path.split('/')\n let dirname = pathList.slice(0, pathList.length - 1).join('/')\n let parentUrl = `/board/${bid}/manual`\n if (dirname !== '') {\n parentUrl += '/' + dirname\n }\n\n let basename = pathList[pathList.length - 1]\n if (basename[0] === 'M') {\n return \n }\n\n const [stateManualsPage, doManualsPage] = useReducer(DoManualsPage)\n const [stateHeader, doHeader] = useReducer(DoHeader)\n\n // eslint-disable-next-line\n const [errMsg, setErrMsg] = useState('')\n\n //keys\n useKey('ArrowLeft', (e) => {\n window.location.href = parentUrl\n })\n\n //render\n const [headerHeight, setHeaderHeight] = useState(0)\n const [funcbarHeight, setFuncbarHeight] = useState(0)\n const headerRef: MutableRefObject = useRef(null)\n const funcbarRef: MutableRefObject = useRef(null)\n const { width: innerWidth, height: innerHeight } = useWindowSize()\n const [scrollTop, setScrollTop] = useState(0)\n\n useEffect(() => {\n let headerID = genUUID()\n doHeader.init(headerID)\n\n let manualsPageID = genUUID()\n const query = QueryString.parse(window.location.search)\n const { start_idx: startIdx, title: queryTitle } = query\n let searchTitle = queryTitle || ''\n\n doManualsPage.init(manualsPageID, bid, path, searchTitle, startIdx)\n\n }, [])\n\n useEffect(() => {\n if (headerRef.current === null) {\n return\n }\n setHeaderHeight(headerRef.current.clientHeight)\n }, [headerRef.current])\n\n useEffect(() => {\n if (funcbarRef.current === null) {\n return\n }\n setFuncbarHeight(funcbarRef.current.clientHeight)\n }, [funcbarRef.current])\n\n //get data\n let manualsPage = getRoot(stateManualsPage)\n if (!manualsPage) {\n return ()\n }\n let myID = getRootID(stateManualsPage)\n let errmsg = manualsPage.errmsg || ''\n let brdname = manualsPage.brdname\n let title = manualsPage.title\n let scrollToRow = manualsPage.scrollToRow\n let manuals = manualsPage.allManuals\n\n let width = innerWidth\n let listHeight = innerHeight - headerHeight - funcbarHeight\n\n let headerTitle = '(精華區) ' + brdname + ' - ' + title\n\n let loadPre = (item: ManArticleSummary_i) => {\n }\n\n let loadNext = (item: ManArticleSummary_i) => {\n }\n\n let onVerticalScroll = (scrollTop: number): boolean => {\n setScrollTop(scrollTop)\n if (scrollToRow === null) {\n return false\n }\n\n doManualsPage.SetData(myID, { scrollToRow: null })\n return true\n }\n\n // eslint-disable-next-line\n let allErrMsg = errors.mergeErr(errMsg, errmsg)\n let renderManuals = () => {\n if (manuals.length === 0) {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n let loptions: PttOption[] = [\n ]\n let roptions: PttOption[] = [\n { text: \"看板\", url: `/board/${bid}/articles` },\n { text: \"看板設定/說明\", action: () => { } },\n ]\n if (path !== '') {\n let roptions_p: PttOption[] = [{ text: '離開', url: parentUrl, hotkey: \"←\" }]\n roptions = roptions_p.concat(roptions)\n }\n\n const renderHeader = (props: HeaderProps) => {\n return (\n
    \n
    \n {headerTitle}\n
    \n
    \n )\n }\n\n // NOTE: ref can only be used directly on html tags to get element attributes\n // Will fail if used on React components.\n return (\n
    \n
    \n \n
    \n {renderManuals()}\n
    \n \n
    \n
    \n )\n}\n","import React from 'react'\nimport { BrowserRouter as Router, Routes, Route } from \"react-router-dom\"\nimport HomePage from '../components/HomePage'\nimport HotBoardsPage from '../components/HotBoardsPage'\nimport ArticlesPage from '../components/ArticlesPage'\nimport GeneralBoardsPage from '../components/GeneralBoardsPage'\nimport UserFavoritesPage from '../components/UserFavoritesPage'\nimport ArticlePage from '../components/ArticlePage'\nimport NewArticlePage from '../components/NewArticlePage'\nimport ClassBoardsPage from '../components/ClassBoardsPage'\nimport ManualsPage from '../components/ManualsPage'\n\ntype Props = {\n\n}\n\nexport default (props: Props) => {\n return (\n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n \n )\n}\n","import React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport reportWebVitals from './reportWebVitals'\n\nimport Routes from './routes/All'\n\nimport './vendors'\n\nimport './index.css'\n\nimport config from 'config'\n\n//title\ndocument.getElementsByTagName('title')[0].innerHTML = config.BRAND\n\n//react\nconst container = document.getElementById('root')\nconst root = createRoot(container!)\nroot.render(\n \n \n \n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","BRAND","API_ROOT","CLIENT_ID","CLIENT_SECRET","TERM_URL","LIST_LIMIT","PTT_GUEST","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","split","decodeURIComponent","err","left","slice","right","concat","decode","input","tokens","match","encodedURI","TypeError","replace","replaceMap","exec","result","entries","keys","customDecodeURIComponent","obj","predicate","ret","isArr","val","indexOf","_typeof","Symbol","iterator","constructor","defineProperty","value","_react","_interopRequireDefault","require","_propTypes","_clamp","_cx","_DOMMouseMoveTracker","__esModule","_defineProperties","target","props","descriptor","enumerable","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","this","self","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_defineProperty","ColumnResizerLine","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","args","_key","width","cursorDelta","deltaX","isRTL","newWidth","state","newColumnWidth","minWidth","maxWidth","setState","_mouseMoveTracker","releaseMouseMoves","onColumnResizeEnd","columnKey","initialEvent","isDragging","captureMouseMoves","initialWidth","_onMove","_onColumnResizeEnd","document","body","touchEnabled","style","height","leftOffset","createElement","className","visible","PureComponent","bool","isRequired","number","knobHeight","object","func","oneOfType","string","_default","_isNaN","_debounceCore","_joinClasses","_shallowEqual","_ReactWheelHandler","_ariaAttributes","_columnTemplates","_scrollbarsVisible3","_tableHeights","_ColumnResizerLine","_FixedDataTableBufferedRows","_FixedDataTableEventHelper","_FixedDataTableRow","_ReactTouchHandler","_extends","assign","source","FixedDataTable","_React$Component","_props","delta","touchScrollEnabled","_shouldHandleWheelX","_shouldHandleWheelY","_this$props","maxScrollX","scrollFlags","scrollX","overflowX","Math","round","_this$props2","maxScrollY","scrollY","overflowY","contentHeight","onContentHeightChange","_contentHeight","offsetTop","fixedCellTemplates","fixedRightCellTemplates","scrollableCellTemplates","bodyHeight","ariaRowIndexOffset","scrollEnabledY","isScrolling","scrolling","fixedColumns","fixedRightColumns","firstViewportRowIndex","firstRowIndex","endViewportRowIndex","endRowIndex","onRowClick","onRowContextMenu","onRowDoubleClick","onRowMouseUp","onRowMouseDown","onRowMouseEnter","onRowMouseLeave","onRowTouchStart","onRowTouchEnd","onRowTouchMove","rowClassNameGetter","rowExpanded","rowKeyGetter","rowSettings","scrollLeft","scrollTop","scrollableColumns","showLastRowBorder","tableSize","rowsToRender","rows","rowOffsets","showScrollbarY","scrollbarYWidth","div","_divRef","_wheelHandler","stopReactWheelPropagation","setRoot","combinedWidth","cellWidth","cellMinWidth","cellMaxWidth","event","coordinates","getCoordinatesFromEvent","clientX","x","clientY","y","columnActions","resizeColumn","startColumnReorder","scrollStart","moveColumnReorder","_this$props3","_this$props3$columnRe","columnReorderingData","cancelReorder","columnAfter","columnBefore","onColumnReorderEndCallback","onHorizontalScroll","stopColumnReorder","reorderColumn","deltaY","_this$props4","onVerticalScroll","scrollActions","abs","scrollToY","roundedX","scrollToX","_scrollToX","_scrollToY","scrollPos","_this$props5","roundedScrollPos","_this$props6","prevProps","_this$props7","onScrollStart","ownerHeight","oldEndRowIndex","oldFirstRowIndex","oldScrollX","oldScrollY","oldOwnerHeight","oldScrolling","scrollXChanged","scrollYChanged","_didScrollStop","_this$props8","onScrollEnd","stopScroll","_didScrollStopSync","_onKeyDown","bind","_setupHandlers","_cleanupHandlers","reset","_onScroll","stopScrollDefaultHandling","stopScrollPropagation","_touchHandler","_shouldHandleTouchX","_shouldHandleTouchY","addEventListener","onWheel","passive","onTouchMove","removeEventListener","scrollbarYHeight","keyboardPageEnabled","preventDefault","keyboardScrollEnabled","ARROW_SCROLL_SPEED","nextProps","_reportContentHeight","_reportScrollBarsUpdates","_didScroll","_tableHeightsSelector3","bodyOffsetTop","scrollbarXOffsetTop","visibleRowsHeight","_this$props9","scrollContentHeight","newScrollState","viewportHeight","scrollbarYOffsetTop","viewportWidth","contentWidth","scrollTo","_scrollTo","previousScrollState","onScrollBarsUpdate","groupHeader","scrollbarY","scrollbarX","_ariaAttributesSelect","ariaGroupHeaderIndex","ariaHeaderIndex","ariaFooterIndex","ariaRowCount","_columnTemplatesSelec","fixedColumnGroups","fixedRightColumnGroups","scrollableColumnGroups","_tableHeightsSelector4","componentHeight","footOffsetTop","_this$props10","columnResizingData","elementHeights","isColumnReordering","isColumnResizing","gridAttributesGetter","onColumnResizeEndCallback","cellGroupWrapperHeight","footerHeight","groupHeaderHeight","headerHeight","_scrollbarsVisible2","scrollEnabledX","onColumnReorder","_onColumnReorder","attributes","ariaRowIndex","isHeaderOrFooter","index","zIndex","onColumnResize","_onColumnResize","onColumnReorderMove","_onColumnReorderMove","dragKnob","Number","MAX_VALUE","footer","topShadow","bottomShadow","_renderRows","cell","header","onColumnReorderEnd","_onColumnReorderEnd","top","tabIndex","tableClassName","role","onKeyDown","onTouchStart","onTouchEnd","onTouchCancel","ref","_onRef","Component","maxHeight","oneOf","node","scrollbarXHeight","defaultScrollbars","showScrollbarX","rowsCount","rowHeight","rowHeightGetter","subRowHeight","subRowHeightGetter","element","scrollToColumn","scrollToRow","bufferRowCount","shape","rowAttributesGetter","undefined","_defaultTo","_inRange","_isNil","_emptyFunction","_FixedDataTableTranslateDOMPosition","FixedDataTableBufferedRows","_staticRowArray","_initialRender","max","bufferHeight","containerOffsetTop","_this$_staticRowArray","rowIndex","rowOffsetTop","floor","renderRow","sortedRows","sort","rowSortComparator","_ref","rowProps","hasBottomBorder","onClick","onContextMenu","onDoubleClick","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","rowA","rowB","_rowA$props$ariaRowIn","_rowB$props$ariaRowIn","array","_FixedDataTableCellDefaultDeprecated","_FixedDataTableColumnReorderHandle","_reactLifecyclesCompat","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","FixedDataTableCell","isReorderingThisColumn","displacement","reorderingDisplacement","stopPropagation","prevState","newState","originalLeft","reorderCellLeft","dragDistance","farthestPossiblePoint","columnGroupWidth","columnWidth","min","reorderCellRight","reorderCellCenter","centerOfThisColumn","cellIsBeforeOneBeingDragged","cellWasOriginallyBeforeOneBeingDragged","changedPosition","isVisible","pureRendering","oldCell","oldProps","newCell","newProps","type","DIR_SIGN","transform","columnResizerComponent","columnReorderComponent","lastChild","align","highlighted","columnResizerStyle","_onColumnResizerMouseDown","_suppressEvent","_onColumnReorderMouseDown","content","cellProps","isValidElement","cloneElement","polyfill","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","FixedDataTableCellDefault","children","innerStyle","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","_widthHelper","_FixedDataTableCell","_createClass","FixedDataTableCellGroupImpl","columnProps","cellTemplate","isHorizontallyVisible","isResizable","isReorderable","cellClassName","columns","cells","sumPropWidths","reduce","acc","column","currentPosition","j","template","recyclable","allowCellsRecycling","_renderCell","position","FixedDataTableCellGroup","_React$Component2","_super2","_this2","offsetLeft","FixedDataTableColumn","fixed","fixedRight","flexGrow","FixedDataTableColumnGroup","FixedDataTableColumnReorderHandle","targetRect","getBoundingClientRect","mouseLocationInElement","mouseLocationInRelationToColumnGroup","parentElement","mouseLocation","inElement","inColumnGroup","_distance","_animating","frameId","requestAnimationFrame","_updateState","cancelAnimationFrame","_redux","_invariant","_pick","ActionTypes","_interopRequireWildcard","_FixedDataTable","_FixedDataTableStore","_Scrollbar","_ScrollContainer","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","desc","set","FixedDataTableContainer","reduxStore","bindActionCreators","dispatch","INITIALIZE","unsubscribe","subscribe","onStoreUpdate","boundState","getBoundState","currentState","PROP_CHANGE","getState","fdt","newBoundState","propsRevision","SIZE","touches","touch","_FixedDataTableContainer","_FixedDataTableColumn","_FixedDataTableCellDefault","_FixedDataTableColumnGroup","_FixedDataTableCellGroup","FixedDataTableRowImpl","rowExpandedProps","totalWidth","ceil","mouseLeaveIndex","fixedColumnsWidth","columnsLeftShadow","_renderColumnsLeftShadow","fixedRightColumnsWidth","scrollbarOffset","fixedRightColumnsShadow","_renderFixedRightColumnsShadow","scrollableColumnsWidth","columnsRightShadow","_renderColumnsRightShadow","_getRowExpanded","rowExpandedStyle","scrollbarSpacer","spacerStyles","_onClick","_onContextMenu","_onDoubleClick","_onMouseDown","_onMouseUp","_onMouseEnter","_onMouseLeave","_onTouchStart","_onTouchEnd","_onTouchMove","FixedDataTableRow","visibility","_reducers","createStore","_BrowserSupportCore","_translateDOMPositionXY","initialRender","display","hasCSSTransforms","_requestAnimationFramePolyfill","TRACKER_TIMEOUT","ReactTouchHandler","onTouchScroll","handleScrollX","handleScrollY","_dragAnimationId","_trackerId","_deltaX","_deltaY","_lastTouchX","_lastTouchY","_velocityX","_velocityY","_accumulatedDeltaX","_accumulatedDeltaY","_lastFrameTimestamp","Date","now","_autoScrollTimestamp","thatReturnsTrue","thatReturnsFalse","_handleScrollX","_handleScrollY","_preventDefault","_stopPropagation","_onTouchScrollCallback","_didTouchMove","_track","_autoScroll","_startAutoScroll","pageX","pageY","clearInterval","setInterval","moveX","moveY","defaultPrevented","changed","elapsed","oldVelocityX","oldVelocityY","weight","factor","exp","SCROLL_TO_Y","SCROLL_TO_X","SCROLL_END","SCROLL_START","COLUMN_RESIZE","COLUMN_REORDER_MOVE","COLUMN_REORDER_END","COLUMN_REORDER_START","_ActionTypes","reorderData","resizeData","startScroll","_forEach","_map","_extractProps","_extractTemplates","elementTemplates","columnElement","childComponents","Children","child","__TableColumnGroup__","__TableColumn__","columnGroupProps","columnGroupElement","groupIdx","useGroupHeader","_reselect","createSelectorCreator","defaultMemoize","_reduce","accum","getTotalWidth","getTotalFlexGrow","_isEmpty","ScrollContainer","_args","size","contentSize","onScroll","_onVerticalScroll","verticalTop","HorizontalScrollbar","offset","_onHorizontalScroll","_onScrollBarsUpdate","outerContainerStyle","innerContainerStyle","overflow","isOpaque","orientation","_reactDom","_Keys","_cssVar","UNSCROLLABLE_STATE","scrollable","FACE_MARGIN","parseInt","FACE_MARGIN_2","_lastScrolledScrollbar","Scrollbar","_faceRef","_rootRef","_onWheel","_shouldHandleChange","_calculateState","clampedSize","stateKey","_stateKey","_stateForKey","isHorizontal","scale","faceSize","maxPosition","_setNextState","nextState","nativeEvent","offsetX","layerX","getTouchX","offsetY","layerY","getTouchY","focused","focus","flushSync","fn","_nextState","keyCode","TAB","distance","direction","HOME","LEFT","RIGHT","SPACE","shiftKey","UP","DOWN","PAGE_UP","PAGE_DOWN","el","findDOMNode","_onBlur","blur","oops","targetTouches","controlledPosition","willScroll","callback","_blur","defaultPosition","mainStyle","faceStyle","isVertical","isActive","mainClassName","faceClassName","bottom","touchAction","trackColor","backgroundColor","onFocus","_onFocus","onBlur","_onTouchCancel","_onRefRoot","_onRefFace","_onWheelX","_onWheelY","_shouldHandleX","_shouldHandleY","_onMouseMove","_onMouseMoveEnd","documentElement","KEYBOARD_SCROLL_AMOUNT","OFFSET","_columnWidths5","initialize","oldScrollToColumn","_columnWidths2","availableScrollWidth","fixedColumnsCount","scrollableColumnsCount","noScrollableColumns","scrollToUnchanged","selectedColumnFixed","selectedColumnFixedRight","clampedColumnIndex","previousWidth","columnIdx","selectedColumnWidth","minScrollPosition","isFixed","some","reorderColumnMove","_state$columnReorderi","dragX","reorderingData","scrollAnchor","firstRowOffset","rowRange","calculateRenderedRowRange","firstViewportIdx","firstOffset","lastIndex","endViewportIdx","viewportOnly","rowBufferSet","rowOffsetIntervalTree","storedHeights","endBufferIdx","firstBufferIdx","renderedRowsCount","startIdx","endIdx","runningOffset","sumUntil","rowIdx","addRowToBuffer","computeRenderedRowOffsets","_roughHeights","_scrollbarsVisible","_updateRowHeight","_roughHeightsSelector","maxAvailableHeight","firstIndex","step","totalHeight","forceScrollToLastRow","availableHeight","startRange","endRange","maxBufferSize","rowPosition","getValuePosition","getSize","replaceFurthestValuePosition","getNewPositionForValue","_IntegerBufferSet","_PrefixIntervalTree","_convertColumnElementsToData","_scrollAnchor3","_columnStateHelper","_computeRenderedRows","initializeRowHeightsAndOffsets","_state$rowSettings","defaultFullRowHeight","uniform","idx","setStateFromProps","_convertColumnElement","_newState$rowSettings","useMaxHeight","action","getScrollAnchor","_newState","_scrollAnchor","_newState2","previousScrollAnchor","_newState3","_scrollAnchor2","_scrollbarsVisibleSel2","rowBegin","rowEnd","newRowIdx","greatestLowerBound","newHeight","oldHeight","useFooter","_shallowEqualSelector","_columnWidths","columnWidths","columnGroup","groupData","columnContainer","_flexWidths","newColumnProps","remainingFlexGrow","columnsWidth","remainingFlexWidth","flexWidth","columnGroupWidths","newColumnGroupProps","flexWidths","_groupColumns","columnProp","container","groupColumns","ScrollbarState","MIN_BUFFER_ROWS","MAX_BUFFER_ROWS","HIDDEN","JOINT_SCROLLBARS","VISIBLE","getBufferRowCount","console","log","fullRowHeight","avgVisibleRowCount","reservedHeight","roughAvailableHeight","scrollStateX","minColWidth","getScrollStateX","minAvailableHeight","roughHeights","allowScrollbarY","scrollbarsVisible","reservedWithScrollbar","rowContainerHeight","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","_populated","_populate","uas","navigator","userAgent","agent","os","parseFloat","NaN","documentMode","trident","ver","UserAgent_DEPRECATED","ie","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","CSS_VARS","cssVar","name","Error","condition","format","a","b","c","d","f","error","argIndex","framesToPop","canUseDOM","window","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","BACKSPACE","RETURN","ALT","ESC","END","DELETE","COMMA","PERIOD","A","Z","ZERO","NUMPAD_0","NUMPAD_9","_hyphenPattern","_","character","toUpperCase","_globalThisPolyfill","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","clearTimeout","wait","context","setTimeoutFunc","clearTimeoutFunc","timeout","debouncer","__SMmeta","setTimeout","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsNull","thatReturnsThis","thatReturnsArgument","_ExecutionEnvironment","_camelize","memoized","prefixes","prefixRegex","testStyle","property","capitalizedName","charAt","test","prefixedName","getWithPrefix","globalThis","global","nextClass","argLength","ii","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","_nativeRequestAnimationFrame","lastTime","currTime","timeDelay","objA","objB","keysA","keysB","bHasOwnProperty","_getVendorPrefixedName","hasCSSAnimations","hasCSS3DTransforms","hasCSSTransitions","_EventListener","_cancelAnimationFramePolyfill","DOMMouseMoveTracker","onMove","onMoveEnd","domNode","_isDragging","_isTouchEnabled","_animationFrameID","_domNode","_onMoveEnd","_onMouseEnd","_didMouseMove","_eventMoveToken","_eventUpToken","_eventLeaveToken","listen","_eventTouchStartToken","_eventTouchMoveToken","_eventTouchEndToken","_x","_y","remove","_normalizeWheel","ReactWheelHandler","_didWheel","_onWheelCallback","_isRTL","normalizedEvent","spinX","spinY","pixelX","pixelY","platform","_allowInternalAxesSwap","_swapNormalizedWheelAxis","_contains","rootRef","parent","parentNode","_UserAgent_DEPRECATED","_isEventSupported","normalizeWheel","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","getEventType","TRANSFORM","ua","useHasFeature","implementation","hasFeature","eventNameSuffix","capture","eventName","isSupported","setAttribute","defaultComparator","Heap","items","comparator","_items","_size","_comparator","_heapify","elt","lastElt","pop","_sinkDown","item","_bubbleUp","parentIndex","parentElt","leftChildIndex","rightChildIndex","swapIndex","leftChild","rightChild","_Heap","IntegerBufferSet","_valueToPositionMap","_smallValues","_smallerComparator","_largeValues","_greaterComparator","newPosition","_pushToHeaps","lowValue","highValue","newValue","_cleanHeaps","empty","valueToReplace","minValue","peek","maxValue","_cleanHeap","minHeapSize","_recreateHeaps","sourceHeap","newSmallValues","newLargeValues","heap","lhs","rhs","Int32Array","xs","PrefixIntervalTree","_half","ceilLog2","_heap","initialValue","end","sum","inclusiveEnd","begin","t","leftSum","greatestStrictLowerBound","eventType","detachEvent","registerDefault","slashReplaceRegex","getClassName","map","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","clear","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Promise","Set","setCacheAdd","setCacheHas","SetCache","values","__data__","add","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","data","Uint8Array","thisArg","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArg","isBuff","isType","skipIndexes","String","accumulator","initAccum","baseAssignValue","eq","objValue","lower","upper","baseForOwn","baseEach","createBaseEach","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","nativeMax","nativeMin","start","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","isArrayLike","collection","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","basePickBy","paths","baseGet","baseSet","eachFunc","assignValue","nested","constant","baseSetToString","n","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","stringToPath","coreJsData","fromRight","iterable","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","tag","byteLength","byteOffset","buffer","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","flatten","overRest","setToString","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","splice","getMapData","memoize","overArg","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","otherArgs","freeSelf","root","shortOut","nativeNow","count","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","charCodeAt","quote","subString","reWhitespace","baseClamp","toNumber","defaultValue","arrayEach","castFunction","baseHasIn","hasPath","baseInRange","toFinite","baseIsArguments","stubFalse","Buffer","baseKeys","isNumber","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseIteratee","baseMap","resolver","Cache","basePick","pick","flatRest","baseProperty","basePropertyDeep","arrayReduce","baseReduce","INFINITY","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","tz","load","factory","define","moment","version","cachedGuess","zones","links","countries","names","guesses","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","parts","whole","fractional","multiplier","out","sign","arrayToInt","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","diff","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","zoneScore","change","next","startYear","getFullYear","last","userOffsets","zoneScores","getZone","scoreOffsetAt","toLowerCase","addZone","packed","normalized","caller","link","addLink","aliases","alias","normal0","normal1","needsOffset","m","isUnixTimestamp","_f","_a","_tzm","utc","isMoment","parse","unpacked","_index","timestamp","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","_d","z","zoneName","zoneAbbr","local","setDefault","momentProperties","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isDate","arr","res","arrLen","extend","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","len","updateInProgress","copyConfig","to","from","prop","momentPropertiesLen","_isAMomentObject","_i","_l","_offset","_locale","Moment","config","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","dd","w","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","clone","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","period","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","bigint","any","arrayOf","elementType","instanceOf","objectOf","exact","checkPropTypes","PropTypes","strictUriEncode","decodeComponent","splitOnFirst","filterObject","validateArrayFormatSeparator","encode","options","encodeURIComponent","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","trim","parseBooleans","query","arrayFormat","arrayFormatSeparator","formatter","isEncodedArray","parserForArrayFormat","param","stringify","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","exclude","exclusionFilter","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","v","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttributeNS","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","displayName","Pa","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","setProperty","substring","tb","menuitem","area","br","col","embed","hr","img","keygen","meta","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","ed","transition","fd","gd","hd","id","Uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","vd","Ad","screenX","screenY","ctrlKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","code","repeat","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","changedTouches","Xd","Yd","deltaZ","Zd","$d","ae","be","ce","de","ee","fe","ge","he","le","color","email","password","range","search","tel","text","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","listener","D","of","pf","qf","rf","random","sf","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","dh","K","eh","fh","gh","q","r","ih","jh","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","_owner","_stringRef","uh","vh","wh","xh","yh","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","nk","ok","pk","Y","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","_thunkReducer","_uuid","theDo","currentDispatchedReducer","myClass","currentDispatched","doMe","nodes","each","init","params","myuuidv4","async","getClassState","myID","genUUID","parentID","doParent","initCore","addChild","theClass","do","INIT","reduceInit","theState","_children","_parent","newNodes","SET_ROOT","reduceSetRoot","ADD_CHILD","reduceAddChild","reduceAddRelative","ADD_LINK","addLinkCore","relative","reduceAddLink","relativeName","theID","relativeIDs","list","newIDs","newRelatives","newMe","REMOVE","removeCore","reduceRemove","childID","childClass","isFromChild","removeRelation","removeChildCore","REMOVE_CHILD","reduceRemoveChild","reduceRemoveRelation","removeLink","linkID","linkClass","isFromLink","removeLinkCore","REMOVE_LINK","reduceRemoveLink","relationID","relationClass","isFromRelation","relationRemove","removeRelationCore","relationName","relation","relationByClass","eachID","relationIDs","newRelation","newRelationByClass","SET_DATA","setData","reduceSetData","newMyState","reduceMap","baseAction","defaultReduceMap","getRelativeIDs","relativeClass","relatives","relativesByClass","getRelativeID","ids","_GLOBAL_IDS","_GEN_UUID_STATE","iterate","isAdd","genUUIDCore","myuuid","v4","useThunkReducer","reducer","initArg","hookState","setHookState","__self","__source","Fragment","jsx","jsxs","forceUpdate","escape","_status","_result","only","Profiler","StrictMode","Suspense","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","lazy","memo","startTransition","unstable_act","_toPropertyKey","hint","prim","toPrimitive","_objectSpread2","formatProdErrorMessage","$$observable","observable","randomString","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","preloadedState","enhancer","_ref2","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observer","observeState","legacy_createStore","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","bindActionCreator","actionCreator","actionCreators","boundActionCreators","compose","funcs","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","NOT_FOUND","defaultEqualityCheck","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","prev","createCacheKeyComparator","equals","put","getEntries","createSingletonCache","cacheIndex","findIndex","createLruCache","matchingEntry","find","clearCache","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","every","dep","dependencyTypes","getDependencies","memoizedResultFunc","selector","lastResult","recomputations","resetRecomputations","createSelector","createStructuredSelector","selectors","selectorCreator","objectKeys","resultSelector","_len3","_key3","composition","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","separatorIndex","str","_nil","_parse","_stringify","_v","_v2","_v3","_v4","_validate","_version","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","num","cnt","md5ff","md5gg","md5hh","md5ii","bytes","unescape","length32","hexTab","hex","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","randomUUID","crypto","uuid","getRandomValues","rnds8","ROTL","unsafeStringify","byteToHex","_rng","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","rng","msecs","nsecs","dt","tmh","_md","URL","DNS","hashfunc","generateUUID","namespace","_namespace","stringToBytes","rnds","_sha","_regex","warning","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","leafPrototypes","getProto","ns","def","definition","chunkId","all","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","onScriptComplete","onerror","onload","doneFns","head","nmd","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","Action","PopStateEventType","getHistoryState","usr","createLocation","pathname","parsePath","parsedPath","hashIndex","searchIndex","createClientSideURL","origin","createPath","invariant","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","handlePop","encodeLocation","Push","historyState","pushState","Replace","replaceState","go","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","rest","isOptional","endsWith","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","paramNames","regexpSource","paramName","compilePath","captureGroups","splatValue","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","cond","ErrorResponse","statusText","internal","status","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","React","checkIfSnapshotChanged","inst","latestGetSnapshot","prevValue","nextValue","DataStaticRouterContext","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","useLocation","useParams","routeMatch","DefaultErrorElement","useDataRouterState","DataRouterStateHook","UseRouteError","thisRoute","errors","useRouteError","lightgrey","preStyles","padding","codeStyles","fontStyle","RenderErrorBoundary","super","errorInfo","component","RenderedRoute","routeContext","dataStaticRouterContext","errorElement","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","reduceRight","getChildren","DataRouterHook","hookName","Route","Router","_ref4","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref5","dataRouterContext","dataRouterStateContext","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","router","createRoutesFromChildren","AwaitRenderStatus","treePath","loader","hasErrorBoundary","shouldRevalidate","handle","BrowserRouter","historyRef","createBrowserHistory","_jsx","theDate","createReducer","COLOR_FOREGROUND_GREEN","COLOR_FOREGROUND_WHITE","COLOR_BACKGROUND_BLACK","COLOR_BACKGROUND_BLUE","COMMENT_TYPE_RECOMMEND","COMMENT_TYPE_BOO","COMMENT_TYPE_COMMENT","title","paramsTitle","renderHeader","paramsRenderHeader","stateHeader","getRoot","userID","user_id","_jsxs","styles","Empty","renderUserHome","GetBoardSummary","bid","endpoint","method","LoadGeneralBoardsByClass","keyword","start_idx","asc","LoadGeneralBoards","serialize","queryToString","callAPI","files","json","accessToken","callApi","CONFIG_API_ROOT","default_api_root","headers","paramsStr","csrftokenDOM","getElementById","csrftoken","fetch","credentials","Msg","getData","errmsg","api","_setData","stateHomePage","doHomePage","DoHomePage","doHeader","DoHeader","headerID","homePageID","getRootID","pageStyles","Header","mergeErr","errMsg","allErrMsg","effect","fnRef","useEffectOnce","initialState","frame","setRafState","useUnmount","noop","on","off","isBrowser","initialHeight","useRafState","innerWidth","innerHeight","handler_1","MergeList","origList","newList","reverse","MergeIdxList","startNumIdx","newStartNumIdx","numIdx","SantizeBoard","board","BoardURL","gid","brdname","class","nuser","stat_attr","moderators","pttbid","level_idx","CdateMdHM","milliTS","isBusyLoading","_getData","dataList","toUpdate","MAX_SCALE","CONSTS","FONT_SIZE","HALF_FONT_SIZE","SCALE","WINDOW_WIDTH","SCREEN_WIDTH","CHAR_WIDTH","EDIT_SCREEN_WIDTH","LINE_HEIGHT","IS_MOBILE","IS_INIT","BASE_COLUMN_WIDTH","CalcFontSizeScaleScreenWidth","windowWidth","isMobile","fontSize","screenWidth","calcScreenWidth","DEFAULT_SCREEN_WIDTH","calcScale","CalcScreenScale","renderLine","Cell","_DEFAULT_COLUMNS","accessor","_initBlink","interval","classList","toggle","runeStyles","propsColumns","renderCell","propsRenderCell","scaleWidth","theRestWidth","defaultRenderCell","LineCell","scroll","Table","renderColumn","Column","Content","setRowNum","highlightRow","highlightStyle","Idx","styleClasses","loadPre","loadNext","_COLUMNS","headerTextAlign","boards","selectedRow","setSeletedRow","defaultHighlight","Screen","renderer","renderIdx","PlainText","Moderators","screenStyles","RowHighlightedCell","textAlign","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","breakpoints","minBreakpoint","useBootstrapPrefix","defaultPrefix","useIsRTL","getOverlayDirection","placement","bsDirection","Tooltip","bsPrefix","arrowProps","popper","show","_2","primaryPlacement","useMounted","mounted","useWillUnmount","onUnmount","valueRef","useUpdatedRef","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","defaultKey","_toPrimitive","useUncontrolledProp","propValue","handler","wasPropRef","_useState","stateValue","isProp","wasProp","useUncontrolled","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","toFnRef","refA","refB","mergeRefs","useCallbackRef","iter","tar","dequal","foo","bar","ctor","getInt8","isView","getBasePlacement","getWindow","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","getLayoutRect","rootNode","getRootNode","isSameNode","host","getNodeName","getComputedStyle","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","auto","basePlacements","clippingParents","viewport","reference","variationPlacements","placements","modifierPhases","enabled","phase","_state$modifiersData$","arrowElement","elements","arrow","popperOffsets","modifiersData","basePlacement","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","requires","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","strategy","_options$scroll","_options$resize","resize","scrollParents","scrollParent","update","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","isBody","updatedList","rectToClientRect","rect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","modifiers","visited","modifier","depModifier","debounce","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","orderModifiers","merged","existing","mergeByName","_ref3$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","computeStyles","eventListeners","flip","_excluded","disabledApplyStylesModifier","ariaDescribedByModifier","_popper$getAttribute","EMPTY_MODIFIERS","referenceElement","popperElement","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","popperState","useSafeState","updateModifier","nextModifiers","optionsSupported","onceSupported","once","wrappedHandler","__once","onceHandler","useEventCallback","useCommittedRef","getRefTarget","InitialTriggerEvents","click","mouseup","pointerup","onClickOutside","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","isLeftClickEvent","handleInitialMouse","handleMouse","doc","currentEvent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","onRootClose","onClose","useClickOutside","handleKeyUp","removeKeyupListener","Context","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","toModifierArray","mergeOptionsWithPopperConfig","enableEvents","containerPadding","popperConfig","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","toModifierMap","Overlay","outerRef","Transition","rootElement","attachRef","attachArrowRef","mergedRef","useMergedRefs","exited","setExited","usePopper","handleHidden","onExited","mountOverlay","useRootClose","onHide","rootClose","rootCloseDisabled","rootCloseEvent","onExit","onExiting","onEnter","onEntering","onEntered","in","appear","ReactDOM","isReactNative","product","rHyphen","pascalCase","chr","createWithBsPrefix","BsComponent","Tag","resolvedPrefix","Popover","_1","decoratedBsPrefix","PopoverBody","PopoverHeader","Body","POPPER_OFFSET","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","nextCallback","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","forceReflow","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","cancel","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","propTypes","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","removeProperty","cssText","emulateTransitionEnd","called","createEvent","initEvent","triggerEvent","transitionEnd","mult","parseDuration","removeEmulate","transitionEndListener","safeFindDOMNode","componentOrElement","TransitionWrapper","childRef","normalize","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","innerProps","fadeStyles","Fade","transitionClasses","isAppearing","triggerBrowserReflow","overlay","outerProps","popperRef","firstRenderedState","setFirstRenderedState","customOffset","overlayRef","popoverClass","baseVal","useOverlayOffset","actualTransition","handleFirstUpdate","useIsomorphicEffect","BaseOverlay","overlayProps","popperObj","_popperObj$state","_popperObj$state$modi","aRef","__wrapped","wrapRefs","updatedPlacement","outOfBoundaries","hide","handleMouseOverOut","relatedNative","related","OverlayTrigger","trigger","propsShow","defaultShow","onToggle","propsDelay","triggerNodeRef","hoverStateRef","setShow","normalizeDelay","handleShow","handleHide","handleFocus","handleBlur","handleClick","handleMouseOver","handleMouseOut","triggers","triggerProps","onMouseOver","onMouseOut","_Fragment","optionsLeft","optionsRight","renderOptions","mapOption","hotkey","renderTooltip","renderInner","stateHotBoardsPage","doHotBoardsPage","DoHotBoardsPage","setErrMsg","setHeaderHeight","funcbarHeight","setFuncbarHeight","headerRef","funcbarRef","useWindowSize","hotBoardsPageID","hotBoardsPage","myUserID","listHeight","roptions","renderBoardList","BoardList","FunctionBar","defaultTarget","isListenerType1","isListenerType2","opts","useMemoHandler","keyFilter","handlerEvent","useEvent","bottomArticles","nextIdx","isNextEnd","isPreEnd","lastSearchTitle","ServerUtils","_getBottomArticles","GetArticles","SetData","aid","regularArticles","allArticles","searchTitle","isExclude","classState","myList","lastPre","lastNext","myLastSearchTitle","LoadArticles","defaultStartNum","start_num_idx","nextCreateTime","next_create_time","next_idx","isInteger","articles","State","CommNum","PostDate","Category","setText","searching","onSearch","onClear","prompt","onSubmit","placeholder","onChange","outlineOffset","searchIcon","alt","clearIcon","stateArticlesPage","doArticlesPage","DoArticlesPage","setScrollTop","setSearching","useKey","articlesPageID","QueryString","queryTitle","articlesPage","headerTitle","onSearchSubmit","onSearchClear","loptions","SearchBar","EmptyList","ArticleList","searchKeyword","isByClass","lastSearchKeyword","GetBoards","myLastSearchKeyword","loadBoards","stateGeneralBoardsPage","doGeneralBoardsPage","DoGeneralBoardsPage","setIsByClass","generalBoardsPageID","boardsPage","renderBoards","level","LoadFavoriteBoards","stateUserFavoritesPage","doUserFavoritesPage","DoUserFavoritesPage","userid","userFavoritesPageID","_TYPE_RUNE_MAP","color0","foreground","background","highlight","contentLines","comments","contentComments","GetArticleContent","AddRecommend","recommendType","recommend","GetComments","Rank","rank","myComments","dataComments","_parseComments","newComments","GetArticle","bbsLines","_parseBBSLines","bbs","ip","_parseHeader","lines","_parseLines","authorBoard","theDateTime","author","pullright","runes","protocol","theType","_parseReply","_parseForwardComment","_parseEditedComment","_parseDeletedComment","_parseRegularComment","flatMap","comment","owner","create_time","createTime","typeRune","ownerRune","colonRune","contentRunes","color1","datetimeRune","eachRunes","boardName","deleter","editor","editTime","_runeAttrs","getClassNamesFromRune","rune","classNames0","getClassNamesFromColor","isTwoColor","attr","part","blink","calcTextCount","classNamesGroup","runeKey","className0","Rune","Runes","caretUp","fill","viewBox","xmlns","caretDown","chevronRight","chevronLeft","times","Spinner","xmlSpace","attributeType","dur","repeatCount","label","icon","busy","spinner","cn","Button","localizer","labelId","onMoveRight","onMoveToday","onMoveLeft","onViewChange","prevDisabled","todayDisabled","upDisabled","nextDisabled","navigatePrevIcon","navigateNextIcon","CalendarButton","messages","moveBack","moveToday","moveForward","MILI","SECONDS","MINUTES","HOURS","DAY","DECADE","CENTURY","multiplierMilli","multiplierMonth","daysInFeb","nextDate","currentOffset","nextOffset","solveDST","addMillis","totalMonths","nextYear","trunc","nextMonth","daysOf","setDate","addMonths","firstOfWeek","setHours","createComparer","neq","gt","gte","lt","lte","inRange","createAccessor","decade","century","firstDay","date1","date2","hourLength","dateOut","getHours","operator","isNullOrInvalid","dte","dateMath","merge","defaultDate","matchesImpl","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","isInDisabledFieldset","useFocusManager","setFocus","events","lastFocused","willHandle","didHandle","handleFocusChange","useFocusManagerBase","isWidgetDefaultPrevented","CalendarView","focusedItem","labelledby","focusEvents","_node$querySelector","Row","viewUnit","isEqual","isEmpty","isFocused","isSelected","isOffView","handleChange","clamp","makeArray","chunk","chunkSize","groupBySortedKeys","groupBy","groups","group","chunks","_date","getCenturyDecades","row","colIdx","formatDate","getDecadeYears","supportStyles","dateStyle","dateShort","timeShort","getFormatter","culture","IntlDateLocalizer","timeStyle","toLocaleString","normalizeFormat","toFormattedParts","formatToParts","IntlNumberLocalizer","_$toLocaleString$m","decimal","NumberFormat","decimalCharacter","dateButton","openCombobox","emptyList","emptyFilter","createOption","_value","searchTerm","tagsLabel","removeLabel","noneSelected","selectedItems","labels","increment","decrement","DEFAULTS","getMessages","processed","useMessagesWithDefaults","mergeWithDefaults","formatOverrides","userFormat","formatNumber","parseDate","parseNumber","LocalizerContext","IntlLocalizers","Localization","_number","useLocalizer","renderDay","weekStart","visibleDays","formattedDate","DirectionPropType","cls","SlideTransitionGroup","handleTransitionEnd","hadFocus","isTransitioning","prevClasses","currentClasses","flush","previous","useEventListener","eventTarget","useGlobalListener","useWidgetProps","isNavigatingViaKeyboard","setIsNavigatingViaKeyboard","useKeyboardNavigationCheck","readOnly","autofilling","open","dropUp","Widget","widgetProps","monthsInYear","useAutoFocus","idCount","notify","useInstanceId","otherId","uniqueId","useFirstFocusedRender","MIN","MAX","VIEW_OPTIONS","VIEW_UNIT","VIEW","Month","Year","Decade","Century","ARROWS_TO_DIRECTION","ArrowDown","ArrowUp","ArrowRight","ArrowLeft","OPPOSITE_DIRECTION","MULTIPLIER","inRangeValue","dateOrNull","onCurrentDateChange","views","onNavigate","Calendar","bordered","pCurrentDate","defaultCurrentDate","elementProps","currentValue","handleCurrentDateChange","currentView","handleViewChange","viewId","slideDirection","lastView","lastDate","useViewState","lastValue","inValue","maybeSetCurrentDate","handleDateChange","navigate","nextView","slideDir","_ref$current","inRangeDate","multi","View","todayNotInRange","CalendarHeader","getHeaderLabel","handleViewChangeImpl","handleMoveBack","handleMoveForward","handleMoveToday","firstView","moveFocus","ctrl","move","newDate","isMonth","isUpOrDown","rangeUnit","addUnit","amount","Input","autoComplete","qsa","FocusListContext","defaultOpts","behavior","useListOption","dataItem","ctx","prevElement","activeId","useFocusList","scope","listRef","anchorItem","focusFirstItem","_focusFirstItem","scopeSelector","_scopeSelector","setFocusedItem","itemSelector","rwFocused","toDataItem","focusedElement","hasItem","getFocused","hasFocused","onSelect","ListOption","ListOptionGroup","acceptsArray","isEqualOrOptions","_ref$effectHook","effectHook","dependenciesRef","cleanupRef","cleanup","firstRef","tearDown","useStableMemo","isDepsEqual","nextElement","nextConfig","prevConfig","records","setRecords","useCustomEffect","MutationObserver","observe","disconnect","useImmediateUpdateEffect","whitelist","whitelistRegex","dataKey","CustomPropTypes","textField","onHoverOption","optionComponent","renderItem","renderGroup","selectedItem","useHandleSelect","dataItems","originalEvent","List","_elementProps$role","accessors","elementRef","Option","renderList","groupedData","disabledItems","divRef","handleSelect","scrollIntoView","observeChanges","block","inline","useMutationObserver","subtree","attributeFilter","useScrollFocusedIntoView","pickElementProps","renderOption","textValue","itemIsDisabled","itemIsSelected","rootProps","isWindow","DOCUMENT_NODE","getscrollAccessor","getScrollAccessor","client","box","docElem","SlideDownTransition","setContainerHeight","elem","getHeight","clearContainerHeight","margin","innerClassName","StaticContainer","shouldUpdate","Popup","setActiveDescendant","useActiveDescendant","dataValue","dataText","dataIndexOf","valueDataKey","datum","useAccessors","valueMatcher","findOrSelf","presets","lastIndexOf","useFilteredData","filterer","textAccessor","filterPreset","normalizeFilter","useDropdownToggle","isOpen","close","renderListItem","listComponent","renderListGroup","hideEmptyPopup","hideCaret","selectIcon","busySpinner","popupTransition","containerClassName","inputProps","listProps","ComboboxImpl","autoSelectMatches","defaultOpen","popupProps","ListComponent","popupComponent","BasePopup","rawData","userMessages","currentOpen","handleOpen","inputRef","suggestion","setSuggestion","inputId","listId","isReadOnly","preventScroll","shouldRenderPopup","valueItem","inputValue","completeType","popupOpen","inputReadOnly","inputAddon","InputAddon","setFocused","WidgetPicker","DatePickerInput","editing","editFormat","displayFormat","needsFlush","nextTextValue","setPrevValue","setTextValue","padStart","DateTimePartInput","valueText","pad","emptyChar","isEmptyValue","precision","getValueParts","use12HourClock","getMinutes","getSeconds","getMilliseconds","TEST_VALID","hours12","TEST_COMPLETE","testPart","tests","datePart","padValues","emptyCharacter","noClearButton","hoursAddon","minutesAddon","secondsAddon","millisecondsAddon","TimeInput","uncontrolledProps","_useUncontrolled","minsAddon","secsAddon","hourRef","_hourRef$current","focusable","select","timeParts","setTimeParts","useTimePartState","getMin","getMax","HTMLInputElement","selectNodeContents","selection","selectTextRange","rawValue","strValue","numValue","notifyChange","isComplete","focusNext","handleKeyDown","isMeridiem","isNext","isPrev","inc","nextPart","updates","nextTimeParts","isPartialValue","setMinutes","setSeconds","setMilliseconds","showClear","handleClear","_hourRef$current2","defaultSelector","getDocument","valueFormat","valueDisplayFormat","valueEditFormat","includeTime","timePrecision","timeInputProps","onKeyPress","calendarProps","DatePicker","ariaLabelledby","ariaDescribedby","calRef","tabTrap","startedRef","tabbables","stop","useTabTrap","dateId","currentFormat","dateParser","_localizer$parseDate","constrain","handleKeyPress","handleDateSelect","dateTime","dateStr","handleTimeChange","handleCalendarClick","_calRef$current","_ref$current2","shouldRenderList","handleOpening","handleClosing","CREATE_OPTION","AddToListOption","DropdownListInput","allowSearch","dataKeyAccessor","onAutofill","onAutofillChange","renderValue","setAutofilling","searchRef","onAnimationStart","canShowCreate","allowCreate","renderPopup","onCreate","DropdownListImpl","defaultSearchTerm","currentSearch","handleSearch","filterRef","clearSearch","nextSearchChar","wordRef","word","useSearchWordBuilder","showCreateOption","handleCreate","nextSearchTerm","lastSearchTerm","closeWithFocus","pointer","filledValue","PickerCaret","Listbox","_outerRef","propsOnChange","lastItemRef","maxLength","MultiselectInput","spellCheck","autoCapitalize","onRemove","clearTagIcon","handleRemove","onDelete","renderTagValue","tagOptionComponent","TagOption","MultiselectTag","itemDisabled","INSERT","showPlaceholderWithValues","showSelectedItemsInList","EMPTY_ARRAY","Multiselect","tagListComponent","TagList","MultiselectTagList","tagsId","createId","activeTagId","activeOptionId","tagList","lengthWithoutValues","useMultiselectData","focusedTag","handleDelete","deletingRef","stopAt","closest","nextNode","ELEMENT_NODE","nextDataItems","inputOwns","handleDoubleClick","onKeyUp","DropdownCaret","NumberPickerInput","stringValue","isIntermediateValue","numberValue","isIntermediate","setStringValue","reselectText","isSelectingAllText","lastValueFromProps","__","localeChar","isAtDelimiter","decimals","isPaddedZeros","strVal","userParse","innerRef","inputMode","incrementIcon","decrementIcon","NumberPicker","pStep","repeaterRef","_inputRef$current","handleMouseDown","handleMouseUp","createInterval","getPrecision","clampedValue","NumberInput","_RECOMMEND_TYPES","setRecommendStyle","setRecommend","isRecommend","recommendTypeRef","submit","prefixLength","setIsRecommending","setSearchTerm","DropdownList","_countRune","theSetRecommend","isComposing","onFocusInput","onBlurInput","onClickCancel","onClickSubmit","isInitConsts","setIsInitConsts","setStyle","theStyle","fontFamily","InitCONSTS","halfFontSize","stateArticlePage","doArticlePage","DoArticlePage","articlePageID","charMap","setCharMap","setIsRecommend","isRecommending","stateDict","setStateDict","isEditing","articlePage","InitConsts","n_comments","fullTitle","startRecommend","renderRecommend","Recommend","Article","_DEFAULT_POST_TYPES","post_type","_getBoardSummary","GetBoardDetail","fields","fieldsStr","postTypes","UpdateContent","Submit","uploadContent","CreateArticle","selectedColumn","updateContent","newLine","upLine","nextLine","focusInputRef","isFocus","deleteContent","inputWidth","setInputWidth","leftColumn","rightColumn","isTail","theStyles","inputKey","newInputWidth","isCtrl","onMouseDownCell","onMouseDownTail","_calcTail","whiteSpace","Render","EditCell","calcRunesCount","isEdit","setSelectedRow","setSelectedColumn","setContentLines","setHighlightRow","tailLines","setTailLines","allLines","setAllLines","firstRowIdx","setFirstRowIdx","endRowIdx","setEndRowIdx","scrollRowIdx","setScrollRowIdx","safeSetSelectedRow","newRow","newColumn","safeSetSelectedRowCheckColumnOnly","safeSetHightlightRow","newContentLines","newSelectedRow","newSelectedColumn","insertNewLines","line","theColumn","preRunes","postRunes","newLines","updateLines","theAllLines","nTailLines","theTailLines","nRows","toSetScrollRowIdx","currentLine","preContentLines","postContentLines","attachLine","deleteContentCore","newRunes","wrapLines","wrapRow","wrapColumn","runesToWrapLines","theRunes","textToEditRunes","updateRunes","backgroud","startRow","nRow","insertLines","preLines","postLines","wrapCol","textCount","eachRow","eachColumn","eachCount","Edit","newFirstRowIdx","newEndRowIdx","theNewFirstRowIdx","stateNewArticlePage","doNewArticlePage","DoNewArticlePage","isShowCursor","setIsShowCursor","isShowCursorRef","newArticlePageID","screenHeight","setTitle","setContent","newArticlePage","showErrMsg","renderError","cleanErrMsg","onMouseDownHeader","classStyle","newClass","Editor","clsID","LoadClassBoards","stateClassBoardsPage","doClassBoardsPage","DoClassBoardsPage","classBoardsPageID","allManuals","GetManuals","LoadManuals","GetManualContent","GetManual","stateManualPage","doManualPage","DoManualPage","pathList","dirname","parentUrl","manualPageID","manualPage","manuals","_path","ManualPage","stateManualsPage","doManualsPage","DoManualsPage","manualsPageID","manualsPage","ManualList","HomePage","ClassBoardsPage","GeneralBoardsPage","HotBoardsPage","ArticlesPage","UserFavoritesPage","ArticlePage","NewArticlePage","ManualsPage","reportWebVitals"],"sourceRoot":""}